Будет ли вызываться viewDidLoad, если я нажму кнопку «Домой» и запусту приложение через 5 секунд - PullRequest
0 голосов
/ 26 октября 2018

Я знаю, что viewDidLoad вызывается после загрузки вашего представления. Он вызывается только один раз, когда представление инициализируется и выдвигается или представляется.

Но я хочу знать, когда я вхожу в background state в течение 4-5 секунд и снова открываю приложение. viewDidLoad будет вызван снова.

Я хочу запускать код каждый раз, когда запускается мое приложение. Как мне этого добиться?

1 Ответ

0 голосов
/ 26 октября 2018

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
    }
}
...