我有一个基于导航的应用程序,在子视图中我有一个按钮,点击它会导致调用popToRootViewController方法。
-(IBAction)popToRootViewController
{
[self.navigationController popToRootViewControllerAnimated:YES];
}
这应该导致调用rootViewController的viewWillAppear方法,并且在大多数情况下都会发生这种情况。但是,偶尔会调用rootViewController的viewDidLoad。我无法找到背后的原因。有没有人知道为什么有时会调用viewDidLoad?
答案 0 :(得分:1)
在iOS 5及更早版本中,系统可能会在内存不足时卸载视图:
答案 1 :(得分:0)
viewDidLoad 。
第一次加载视图控制器视图时,将在viewDidLoad方法之后调用viewWillAppear 。
现在,当你在导航控制器中推送或弹出控制器时,肯定会调用可见控制器的viewWillApper 方法。
答案 2 :(得分:0)
viewDidLoad
在视图控制器加载其视图后立即调用。如果视图控制器不再是最前面的控制器,它可以释放其视图以节省内存(并且它曾用于调用{6}中已弃用的viewWillUnload
和viewDidUnload
。如果发生这种情况,当它再次出现时(或任何事情调用thecontroller.view
),它将重新创建视图(如果不是基于Nib,它将调用loadView
),然后调用{{ 1}}。