7

我有 2 个带有导航控制器的视图控制器。当我[self.navigationController popViewControllerAnimated:YES];在第二个中使用时 - 第一个打开但 viewDidLoad 中的方法没有调用。在这种情况下,第一个控制器中调用的方法是什么?

4

2 回答 2

26

导航控制器viewWillAppear:在将其视图放在屏幕上之前和viewDidAppear:之后发送到视图控制器。

viewWillAppear:在and里面viewDidAppear:,视图控制器可以检查self.isMovingToParentViewController. 如果isMovingToParentViewControllerYES,则视图控制器首先被添加到导航控制器中(可能是因为它是导航控制器的根视图控制器,或者因为它正在被推送)。如果isMovingToParentViewControllerNO,则视图控制器已经在导航控制器的堆栈中,并且正在弹出另一个视图控制器以显示它。

阅读类参考中的“处理与视图相关的通知”UIViewController

于 2013-04-05T07:55:35.233 回答
1

在这种情况下,viewWillAppear方法将被调用。

-(void)viewWillAppear:(BOOL)animated
{

}
于 2013-04-05T07:50:39.977 回答