按下主页按钮后再次启动时未调用viewWillAppear

时间:2012-08-30 13:49:25

标签: ios

我制作一个测试应用并在设备上运行它。在第一次发布时,一切正常。然后我按主页按钮退出,然后按应用程序图标。似乎这次没有调用viewWillAppear。根据我的理解,每次视图显示在屏幕上时都会调用viewWillAppear,无论是由关闭视图控制器还是按下主页按钮然后重新启动它。

3 个答案:

答案 0 :(得分:6)

在viewDidLoad()方法中添加它

  [[NSNotificationCenter defaultCenter]addObserver:self
                                        selector:@selector(onResume)
                                            name:UIApplicationDidBecomeActiveNotification
                                          object:nil];

并执行在onResume方法中应用程序再次变为活动状态时需要运行的代码。

答案 1 :(得分:4)

根据文件:

  

在即将添加接收者视图之前调用此方法   到视图层次结构之前和配置任何动画之前   显示视图。您可以覆盖此方法以执行自定义任务   与显示视图相关联。例如,您可以使用它   将状态栏的方向或样式更改为的方法   与所呈现视图的方向或样式协调。   如果重写此方法,则必须在您的某个位置调用super   实施

要获得通知,当您的申请恢复时,您应该使用:
- (void)applicationDidBecomeActive:(UIApplication *)application 此方法在AppDelegate.m

中实现

答案 2 :(得分:0)

这是Swift的语法:

NotificationCenter.default.addObserver(self,
                                       selector: #selector(YourViewController.onResume),
                                       name: Notification.Name.UIApplicationDidBecomeActive, 
                                       object: nil)

专业提示:与任何观察者一样,您需要确保进行订阅(如上所示),并在不再需要通知时取消订阅,如下所示:

NotificationCenter.default.removeObserver(self)

在我看来,在viewWillAppear进行订阅和在viewWillDisappear进行退订是很有意义的,但这完全取决于您应用程序的需求。