在执行SegueWithIdentifier上的调用顺序

当我打电话performSegueWithIdentifier:我重写prepareForSegue:之后为了设置我的目标视图控制器上的一些属性。 但是,我试图了解这里的操作顺序,以确保它是安全的。

我实例化目标视图控制器:

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

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

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

在我目标控制器的viewDidLoad:中,然后查询这个对象的属性,并使用它来加载正确的Web视图。 现在,我首先发生了一些混淆 – 属性的设置,或者在目标控制器上的viewDidLoad: 可以肯定地说,视图控制器的属性将始终从prepareForSegue:设置prepareForSegue:在调用viewDidLoad:之前?

看起来你可能已经从另一个postfind了你的答案,但是我只想补充一点澄清。

标准stream程是

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

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

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