我知道加载视图后会调用viewDidLoad
。视图初始化,推送或显示时仅调用一次。
但是我想知道的是,当我输入background state
4-5秒钟并再次打开该应用程序时。
viewDidLoad
将再次被调用。
我基本上希望每次启动我的应用程序时都运行一个代码。 我将如何实现?
答案 0 :(得分:2)
viewDidLoad
仅在首次加载到内存时才被称为一个。
当您的应用从暂停状态恢复时,即使viewDidAppear
也不会被调用。
您可以从applicationDidBecomeActive()
中使用UIApplicationDelegate
方法。
或者,您可以注册UIApplicationDidBecomeActiveNotification
的观察者,以便在应用程序处于活动状态时调用doSomething
:
class ViewController: UIViewController {
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
// Set up the observer
NotificationCenter.default.addObserver(
self,
selector: #selector(self.doSomething),
name: .UIApplicationDidBecomeActiveNotification,
object: nil)
}
override func viewWillDissapear(_ animated: Bool) {
super.viewWillDissapear(animated)
// Remove the observer
NotificationCenter.default.addObserver(
self,
selector: #selector(self.doSomething),
name: .UIApplicationDidBecomeActiveNotification,
object: nil)
}
@objc func doSomething(notification: NSNotification){
// do something
}
}