首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

segue分析总结

2013-01-07 
segue分析小结在iOS开发中,segue用来实现storyboard中源视图控制器和目标视图控制器连接,当segue被触发时,

segue分析小结

在iOS开发中,segue用来实现storyboard中源视图控制器和目标视图控制器连接,当segue被触发时,系统将完成下列操作:

1、实例化目标视图控制器
2、实例化一个新segue对象,该对象持有所有的信息
3、调用源视图控制器的prepareForSegue:sender:方法,
4、调用segue的 perform 方法将目标控制器带到屏幕上。这个动作行为依赖segue的类型如modal,push,custom.modal segue告诉源视图控制器present目标视图控制器。

在源视图控制器的prepareForSegue:sender:的方法中,执行任何必要的目标视图控制器的属性配置,包括委托设置(如目标视图控制器有协议)。

?

(miki西游 @mikixiyou 原文链接: http://mikixiyou.iteye.com/blog/1745995)

在apple的文档库中第二个示例应用开发文档中,介绍了这样一个segue的使用例子。

在源视图控制器实现代码中,实现prepareForSegue:sender:方法

- (void)addSightingViewControllerDidCancel:(AddSightingViewController *)controller{[self dismissViewControllerAnimated:YES completion:NULL];}- (void)addSightingViewControllerDidFinish:(AddSightingViewController *)controller name:(NSString *)name location:(NSString *)location {if ([name length] || [location length]) {[self.dataController addBirdSightingWithName:name location:location];[[self tableView] reloadData];}[self dismissModalViewControllerAnimated:YES];}

?

在add视图控制器实现代码中,调用它的委托中这两个方法。


在storyboard中segue有三种类型,分别为modal segue、push segue、custom segue。


modal segue

是一个视图控制器(源)为了完成一个任务而模态地(modally)呈现另一个视图控制器(目标)。这个目标视图控制器不是导航视图控制器(navigation view controller)的栈中的一部分。
在任务完成后,使用delegate将呈现的视图控制器(目标)释放掉,应用界面切换到原来的视图控制器(源)上。

这个过程的实现代码可以看成是present和dismiss两个操作。

?

push segue
是将另一个视图控制器压入到导航控制器的栈中。它通常和导航视图控制器(navigation view controller)一起使用。
新压入的视图控制器会有一个回退按钮,可以退回来上一层。

这个过程的实现代码可以看成是push和pop两个操作。

?

热点排行