我有2个视图控制器说VC-1,VC-2。我通过导航堆栈在VC-1上显示VC-2。 VC-1有textView,VC-2有webView。现在,我需要在弹出VC-2后立即更新VC-1的内容。因此我使用VC-2的viewDidDisappear方法来设置内容并使用VC-1的viewWillAppear中的内容来更新textView(VC-1的内容)。但是在viewDidDisappear完成之前,VC-1的viewWillAppear会被执行并且内容不会更新。我已经通过NSLogging检查了这个。 viewDidDisappear有一些文件读取的东西,所以我想这是导致问题。在DidDisappear(VC-2)完成后,如何让WillAppear(VC-1)被调用?
答案 0 :(得分:5)
-viewWillAppear:
。在您的视图完全从屏幕上消失后调用-viewDidDisappear:
。因此,对于任何类型的动画过渡,例如导航堆栈弹出/推送,必须在调用离开的VC -viewWillAppear:
之前调用传入的VC -viewDidDisappear:
。这是完全正确的。
您应该接受-viewDidDisappear:
中正在进行的工作,然后将其移至-viewWillDisappear:
。