我有 2 个带有导航 Controller 的 View Controller 。
当我在第二个中使用 [self.navigationController popViewControllerAnimated:YES];
- 第一个打开但 viewDidLoad 中的方法没有调用。在这种情况下,第一个 Controller 调用了哪些方法?
最佳答案
导航 Controller 在将其 View 显示在屏幕上之前发送viewWillAppear:
到 View Controller ,然后发送viewDidAppear:
。
在 viewWillAppear:
和 viewDidAppear:
中, View Controller 可以检查 self.isMovingToParentViewController
。如果 isMovingToParentViewController
为 YES
,则首先将 View Controller 添加到导航 Controller (大概是因为它是导航 Controller 的 Root View Controller ,或者因为它被推送).如果 isMovingToParentViewController
为 NO
,则 View Controller 已经在导航 Controller 的堆栈中,并且正在弹出另一个 View Controller 以显示它。
阅读“Handling View-Related Notifications” in the UIViewController
class reference .
关于ios - 在ios中点击后退按钮后调用什么方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15828575/