iOS恢复-为什么在I';我在恢复?

iOS恢复-为什么在I';我在恢复?,ios,objective-c,xcode,state-restoration,Ios,Objective C,Xcode,State Restoration,我的故事板有:NavigationController->UIViewController 1->UIViewController 2->UIViewController 3->UIAbbarController->四个UIViewController(a、b、c、d) 我正在向应用程序添加恢复支持。我已经将它添加到UIViewController#1和#3中,现在将它添加到UIAbbarController下的UIViewController“c”中 当我在应用程序显示UIViewContro

我的故事板有:NavigationController->UIViewController 1->UIViewController 2->UIViewController 3->UIAbbarController->四个UIViewController(a、b、c、d)

我正在向应用程序添加恢复支持。我已经将它添加到UIViewController#1和#3中,现在将它添加到UIAbbarController下的UIViewController“c”中

当我在应用程序显示UIViewController“c”时使用Xcode终止应用程序,然后再次启动应用程序时,将正确调用viewcontroller的方法,并正确还原其UITextFields的内容

但在“c”视图控制器中放置断点时,我可以看到UIViewController 3临时显示。它是viewDidLoad和ViewWillAspect:调用方法

显示UIViewController#3的典型原因是什么


我已经为我的UIViewController实施了恢复,从最终用户的角度来看,似乎没有任何负面影响-没有断点,显示器就没有机会更新以显示中间视图。

这就是视图控制器恢复。应用程序从零开始启动;要到达在终止时显示的视图控制器,应用程序将视图控制器创建顺序从根视图控制器向下移动到要显示给用户的视图控制器。这不可能以其他方式发生。(毕竟,如果VC2的后退按钮指向VC1,那么VC2必须位于导航控制器堆栈中VC1的上方。)并且您不希望它不发生,因为在重建序列时,您可能有重要的工作要做。通过在恢复过程中间设置断点,你已经揭示了“幕后的人”。但是用户看不到这个过程(它被发布图像覆盖),所以没有问题

尤其重要的是,在创建链的正下方以正确的顺序调用
viewDidLoad
,并且在发送所有视图控制器之前,都会发生这种情况
decodeRestorableStateWithCoder:
,同样是在链的正下方


(但是,你不应该指望与
viewwillbeen:
及其近亲有任何关系。这些可能会被调用,也可能不会被调用,你无法确定何时调用。我认为
viewwillbeen:
的时间不一致/不可预测性是一个bug,但不幸的是,苹果没有。)

与我的查询完全无关,而是关于对该问题进行的小编辑的查询。将缩写“I'm”扩展为“I am”是因为人们觉得那些阅读英语有困难的人无法理解缩写吗?抱歉@Giordano Scalzo我无意中回滚了您的小编辑(我尝试了大多数链接以找到向您发送消息的途径)。