当我的 View Controller 从导航堆栈中被推送或弹出时,我需要做某些事情,但不想使用 viewillappear/viewdidappear 或 viewwilldisappear/viewdiddisappear,因为除了 View Controller 被推送/弹出时的那些封面案例.正确的方法是使用 navigationcontroller 委托(delegate)和 navigationController:didShowViewController:animated: 和 navigationController:willShowViewController:animated: 吗?如果不是,最好的方法是什么?
最佳答案
要知道什么时候被推送,你可以使用
UINavigationControllerDelegate
并实现
- (void)navigationController:(UINavigationController *)navigationController
willShowViewController:(UIViewController *)viewController
animated:(BOOL)animated
每当 View Controller 被插入导航堆栈时,以及每当它顶部的 View Controller 弹出,从而再次显示它时,此方法就会触发。所以你必须使用一个标志来确定它是否已经初始化,如果还没有意味着它刚刚被推送。
要查明它何时被弹出,使用这个答案:
关于iphone - 从导航堆栈中推送/弹出 uiviewcontroller 时如何收到警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8815886/