当我呼叫performSegueWithIdentifier:
之后,我将覆盖prepareForSegue:
以便在目标视图控制器上设置一些属性。但是,我试图了解这里的操作顺序,以确保它是安全的。
我使用以下命令实例化目标视图控制器:
MyViewController *myVC = (MyViewController*)segue.destinationViewController;
之后我在其上设置了一些属性 - 即,我初始化另一个处理不同Web视图的对象的创建,然后在该对象上设置属性:
[myVC setFormHandler:
[[WebFormHandler alloc] initWithSelectedFormName:[self theFormName]]];
在我的目标控制器的viewDidLoad:
中,然后我查询此对象的属性,并使用它来加载正确的Web视图。现在,我有点困惑于首先发生的事情 - 属性的设置,或目标控制器上的viewDidLoad:
。是否可以肯定地说,在调用prepareForSegue:
之前,视图控制器的属性将始终从viewDidLoad:
设置?
答案 0 :(得分:2)
看起来您可能已经从其他帖子中找到了答案,但我只是想补充一点澄清。
标准流程
performSegue - >准备 - > loadView(在目标控制器中)
但是,在popover segues中,目标视图在prepareForSegue调用之前加载。
注意:在iOS 8中不再是这种情况。在iOS 8中,在调用prepareForSegue时,不会加载popover segue的视图。