iOS:using Segue in Popover

简介:

今晚被一个问题搞半天,如果你使用segue时,正常的执行顺序是,先执行源ViewController的prepareForSegue,再执行目标VC的ViewDidLoad,所以你可以在prepareForSegue对目的VC的相关属性进行设置,进而达到传值的目的。但是当你segue是使用在Popover的场合时,情况就不一样了,系统是先调用目的的ViewDidLoad再调用源VC的prepareForSegue,颠倒过来了,所以刚刚说的赋值传值的方法就行不通了(特别是你在目的的ViewDidLoad就要用到该属性进行一些逻辑的时候)。

解决方法:方法1、放弃segue,直接代码添加popover。

destinationVC = [storyboard instantiateViewControllerWithIdentifier:@"destinationVC"];

destinationVC.mmm = @"hello zhan!";

popover =  [[UIPopoverControlleralloc]initWithContentViewController:destinationVC];//运行这句会才调到目的的ViewDidLoad

.......

方法2、把你在viewDidLoad的逻辑放在一个函数中,在源VC的prepareForSegue掉用改逻辑。这个stackoverflow也有提到http://stackoverflow.com/questions/8838160/prepareforsegue-is-not-called-after-performseguewithidentifier-with-popover-st

 本文转自老Zhan博客园博客,原文链接:http://www.cnblogs.com/mybkn/archive/2012/12/02/2798757.html,如需转载请自行联系原作者

相关文章
|
iOS开发 Swift
iOS开发点滴 - 如何通过Segue写代码传递数据从一个ViewController到另一个ViewController(Swift代码)
1. 拖线 按住Control键,用鼠标从源控制器的某个控件开始,拖动到目的控制器   2. 选择弹出类型并设置Segue Identifier 在弹出的对话框中,选择“Selection Segue->Show” 见下图   设置Segue Identifier   3.
938 0
|
iOS开发
【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记44 Popover Segue
在上一话中我们看了一个Demo,使用modal的方式,但其实如果要考虑到适配Iphone和Ipad设备的话,默认的modal会充满屏幕,而popover可以只占据屏幕上的一小块,之前我们讲过在Iphone中使用popover看起来和modal是一样的。
902 0
【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记42 Modal Segue(模态过渡)
modal segue会占据整个屏幕,所以使用的使用一定要小心,提前做好返回的处理,使用modal segue的好处是在执行某项操作前必须,比如我们熟悉的alert和actionsheet。
768 0
|
前端开发 iOS开发
【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记38 Unwind Segue反向过渡
之前我们接触过了segue,这是IOS中最基本的传递方式,今天来讲解一下如何进行反向的segue。
816 0
|
前端开发 iOS开发 存储
【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记21 深入多MVC模式、Segue过渡
上一话中我们介绍了多MVC模式并且以导航控制器为例讲解了这三个控制器管理多个MVC的工作原理。
987 0
|
Android开发 iOS开发 缓存
对比 Android 的 Intent 与 iOS StoryBoard 的 Segue - Intent 如果也能增加个prepareForSegue回调就好了
对比 Android 的 Intent 与 iOS StoryBoard 的 Segue  - Intent 如果也能增加个prepareForSegue回调就好了 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循“署名-非商业用途-保持一致”创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS、Android、Html5、Arduino、pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作。
948 0
|
容器
iOS7应用开发15:嵌入型segue
同弹出型segue不同,嵌入型segue是另一种视图控制器的切换方式。嵌入型segue将某一个视图控制器的视图(其self.view)嵌入到另一个视图控制器的视图结构中,即让某一个视图控制器的self.view成为另一个视图控制器的self.view的子视图。
798 0
iOS7应用开发16:模态segue、文本框、警告、Action Sheet
1、模态segue(Modal Segue): 这是除了popover和embed之外的另一种视图控制器切换的方法。当切换到模态视图控制器Modal View Controller出现时,该控制器将占据整个可操作空间知道该控制器消失。
1013 0