如何处理applicationDidBecomeActive - “一个视图控制器如何响应应用程序变为活动状态?”

16 浏览
0 Comments

如何处理applicationDidBecomeActive - “一个视图控制器如何响应应用程序变为活动状态?”

我在我的主要AppDelegate.m类中拥有UIApplicationDelegate协议,并定义了applicationDidBecomeActive方法。

我想在应用程序从后台返回时调用一个方法,但该方法在另一个视图控制器中。如何在applicationDidBecomeActive方法中检查当前正在显示哪个视图控制器,然后调用该控制器内的方法?

admin 更改状态以发布 2023年5月23日
0
0 Comments

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
}

0
0 Comments

在你的应用程序中的任何类都可以成为应用程序中不同通知的“观察者”。当你创建(或加载)你的视图控制器时,你需要将它注册为 UIApplicationDidBecomeActiveNotification 的观察者,并指定当该通知发送到你的应用程序时想要调用的方法。\n

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

\n别忘了自我清理!在视图离开时,记得将自己从观察者中移除:\n

[[NSNotificationCenter defaultCenter] removeObserver:self 
                                                name:UIApplicationDidBecomeActiveNotification
                                              object:nil];

\n更多关于通知中心的信息。

0