我有2个带导航控制器的视图控制器。
当我在第二个中使用[self.navigationController popViewControllerAnimated:YES];
时 - 第一个打开,但viewDidLoad中的方法不会被调用。在这种情况下,第一个控制器中调用的方法是什么?
答案 0 :(得分:25)
导航控件将viewWillAppear:
发送到视图控制器,然后将其视图放在屏幕上,然后viewDidAppear:
发送。{/ p>
在viewWillAppear:
和viewDidAppear:
内,视图控制器可以检查self.isMovingToParentViewController
。如果isMovingToParentViewController
是YES
,则视图控制器首先被添加到导航控制器中(可能是因为它是导航控制器的根视图控制器,或者因为它被推送)。如果isMovingToParentViewController
为NO
,则视图控制器已经位于导航控制器的堆栈中,并且正在弹出另一个视图控制器以显示它。
阅读“Handling View-Related Notifications” in the UIViewController
class reference。
答案 1 :(得分:1)
在这种情况下,将调用viewWillAppear
方法。
-(void)viewWillAppear:(BOOL)animated
{
}