7

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

4

3 回答 3

6

将此添加到您的 viewDidLoad() 方法中

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

并在 onResume 方法中执行应用程序再次激活时需要运行的代码。

于 2014-10-24T22:08:24.440 回答
5

根据文档:

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

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

于 2012-08-30T13:57:09.073 回答
0

这是 Swift 的语法:

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

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

NotificationCenter.default.removeObserver(self)

在我的情况下,订阅viewWillAppear和取消订阅是有意义的,viewWillDisappear但这完全取决于您的应用程序的需求。

于 2018-08-22T23:52:19.320 回答