Перезапуск приложения 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() {
// Здесь делаем, что нужно
}