performSegueWithIdentifier上的调用顺序

时间:2012-06-15 22:56:05

标签: objective-c ios uiviewcontroller

当我呼叫performSegueWithIdentifier:之后,我将覆盖prepareForSegue:以便在目标视图控制器上设置一些属性。但是,我试图了解这里的操作顺序,以确保它是安全的。

我使用以下命令实例化目标视图控制器:

MyViewController *myVC = (MyViewController*)segue.destinationViewController;

之后我在其上设置了一些属性 - 即,我初始化另一个处理不同Web视图的对象的创建,然后在该对象上设置属性:

[myVC setFormHandler:
    [[WebFormHandler alloc] initWithSelectedFormName:[self theFormName]]];

在我的目标控制器的viewDidLoad:中,然后我查询此对象的属性,并使用它来加载正确的Web视图。现在,我有点困惑于首先发生的事情 - 属性的设置,或目标控制器上的viewDidLoad:。是否可以肯定地说,在调用prepareForSegue:之前,视图控制器的属性将始终从viewDidLoad:设置?

1 个答案:

答案 0 :(得分:2)

看起来您可能已经从其他帖子中找到了答案,但我只是想补充一点澄清。

标准流程

performSegue - >准备 - > loadView(在目标控制器中)

但是,在popover segues中,目标视图在prepareForSegue调用之前加载。

注意:在iOS 8中不再是这种情况。在iOS 8中,在调用prepareForSegue时,不会加载popover segue的视图。