如何处理applicationDidBecomeActive - “一个视图控制器如何响应应用程序变为活动状态?”
如何处理applicationDidBecomeActive - “一个视图控制器如何响应应用程序变为活动状态?”
我在我的主要AppDelegate.m类中拥有UIApplicationDelegate协议,并定义了applicationDidBecomeActive方法。
我想在应用程序从后台返回时调用一个方法,但该方法在另一个视图控制器中。如何在applicationDidBecomeActive方法中检查当前正在显示哪个视图控制器,然后调用该控制器内的方法?
admin 更改状态以发布 2023年5月23日
Swift 3, 4相应代码:
添加观察者
NotificationCenter.default.addObserver(self, selector: #selector(applicationDidBecomeActive), name: .UIApplicationDidBecomeActive, // UIApplication.didBecomeActiveNotification for swift 4.2+ object: nil)
移除观察者
NotificationCenter.default.removeObserver(self, name: .UIApplicationDidBecomeActive, // UIApplication.didBecomeActiveNotification for swift 4.2+ object: nil)
回调函数
@objc func applicationDidBecomeActive() { // handle event }
在你的应用程序中的任何类都可以成为应用程序中不同通知的“观察者”。当你创建(或加载)你的视图控制器时,你需要将它注册为 UIApplicationDidBecomeActiveNotification
的观察者,并指定当该通知发送到你的应用程序时想要调用的方法。\n
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(someMethod:) name:UIApplicationDidBecomeActiveNotification object:nil];
\n别忘了自我清理!在视图离开时,记得将自己从观察者中移除:\n
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidBecomeActiveNotification object:nil];
\n更多关于通知中心的信息。