iOS view/controller 屏幕解锁或应用切换时的生命周期回调

iOS view/controller lifecycle callback on screen unlock or app switch

当用户解锁 phone 或返回应用程序时,是否有在视图或控制器上调用的任何函数?在应用程序进入前台注册通知对我来说似乎很麻烦,所以我希望调用 viewDidLoadviewDidAppear 之类的东西,但它们没有。

我的视图有不同的状态,其中一个 运行 是一个计时器(UI 适当地表示)。计时器启动后,视图对服务器进行一些调用并更新 UI。似乎在解锁后 NSTimer 从 phone 被锁定的地方继续,但是我想刷新它的状态,检查服务器剩余的超时和 运行 定时器的正确值(或显示 "normal" UI 如果超时已经结束)。我只是找不到系统返回应用程序时为我调用的回调。

正确的解决方案是让视图控制器向 NSNotificationCenter 注册以获得适当的应用程序生命周期通知,例如 UIApplicationDidBecomeActiveNotificationUIApplicationWillEnterForegroundNotification

请记住,这些是应用程序事件,而不是视图事件,这就是为什么 UIViewControllerUIView 中没有针对这些事件的标准方法。