Метод в viewWillAppear и viewDidLoad не загружен
Я создал метод для проверки состояния сервера в моем viewcontroller, мне нужно проверять это каждый раз, когда я буду открывать приложение.
Я звоню [self checkStatus];
из viewWillAppear и viewDidLoad, но когда я открываю приложение, нажимая кнопку "Домой", и пытаюсь снова открыть приложение (щелкая значок приложения в приложениях), этот метод не вызывается. У меня есть NSLog для просмотра, когда он запущен или нет.
Я разочарован. Спасибо за вашу помощь.
2 ответа
Вы можете реагировать на изменения приложения, используя NotificationCenter
:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(doSomething:) name:UIApplicationDidBecomeActiveNotification object:nil];
Кстати: не забудьте removeObserver
когда тебе это не нужно!
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidBecomeActiveNotification object:nil];
Вы также можете использовать UIApplicationWillEnterForegroundNotification
и т.д., в зависимости от того, что вам нужно.
Вы должны прочитать о жизненном цикле приложения на страницах Apple Developer:). Читать:
AppleDeveloperLink Особенно раздел: "Состояния выполнения для приложений", чтобы узнать больше о жизненном цикле приложения.
StackruLink, чтобы узнать больше о жизненном цикле представления.
iOS
не вызывает эти методы снова, но методы делегата в AppDelegate
, Вы должны передать сообщение своим контроллерам тогда.
Я надеюсь, что это поможет вам: https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIApplicationDelegate_Protocol/