Перезапуск приложения viewDidLoad, viewWillAppear

Если работающее приложение завершить, и потом снова запустить, то viewDidLoad, viewWillAppear не срабатывают. Приложение запускается, но как будто зависшее. Как сделать что бы при перезапуске, срабатывал viewDidLoad


Ответы (2 шт):

Автор решения: ivanvorobei

Если приложение завершить, то методы цикла для контроллера вызовутся. Они могут не вызываться, если контроллер не показывается. Проверьте здесь ошибку.

Второй вариант - я не правильно понимаю слово завершить. Уточните.

UPD. Проблему решили, автор запускал приложение не через Xcode, а через хоум-скрин.

→ Ссылка
Автор решения: Marat

Ты его скорее всего "смахиваешь" в бэкграунд (не выгружая из памяти). Для отлова таких событий есть хуки

Например, для перехода, в активное состояние

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    NotificationCenter.default.addObserver(self, 
       selector: #selector(willEnterForeground), 
       name: UIApplication.willEnterForegroundNotification,
       object: nil)
}

override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)
    NotificationCenter.default.removeObserver(self)
}

@objc func willEnterForeground() {
   // Здесь делаем, что нужно
}

→ Ссылка