Метод в 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/

Другие вопросы по тегам