如何在appdelegate中调用viewController的方法
How to call viewController's method in appdelegate
我想要viewController更新数据的方法。
所以我想在 applicationDidBecomeActive(_ application: UIApplication)
时使用 viewController 的更新方法。
怎么可能?
使用UIApplicationDidBecomeActiveNotification
。看到这个 answer.
这可能对您有所帮助(在 Swift 4 中测试过)
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
NotificationCenter.default.addObserver(self,
selector: #selector(applicationDidBecomeActive),
name: Notification.Name.UIApplicationDidBecomeActive,
object: nil)
}
}
@objc func applicationDidBecomeActive() {
print("UIApplicationDidBecomeActive")
}
注意:当你的视图控制器不再在use/memory中时,不要忘记删除观察者(因为这是一个应用程序级别的观察者,每次都会被调用您的应用程序激活的时间,无论您的视图控制器是否处于活动状态。
这是删除观察者的代码:
NotificationCenter.default.removeObserver(self,
name: Notification.Name.UIApplicationDidBecomeActive,
object: nil)
我想要viewController更新数据的方法。
所以我想在 applicationDidBecomeActive(_ application: UIApplication)
时使用 viewController 的更新方法。
怎么可能?
使用UIApplicationDidBecomeActiveNotification
。看到这个 answer.
这可能对您有所帮助(在 Swift 4 中测试过)
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
NotificationCenter.default.addObserver(self,
selector: #selector(applicationDidBecomeActive),
name: Notification.Name.UIApplicationDidBecomeActive,
object: nil)
}
}
@objc func applicationDidBecomeActive() {
print("UIApplicationDidBecomeActive")
}
注意:当你的视图控制器不再在use/memory中时,不要忘记删除观察者(因为这是一个应用程序级别的观察者,每次都会被调用您的应用程序激活的时间,无论您的视图控制器是否处于活动状态。
这是删除观察者的代码:
NotificationCenter.default.removeObserver(self,
name: Notification.Name.UIApplicationDidBecomeActive,
object: nil)