ViewDidAppear Home Button - PullRequest
       93

ViewDidAppear Home Button

0 голосов
/ 31 января 2012

У меня есть таймер с обратным отсчетом.В недавнем тестировании я заметил, что если я нажму кнопку «Домой» и вернусь к приложению, таймер отключится (отметьте меньше секунд, чем должно быть).ViewWill Appear не запускаются при повторном открытии приложения.Я знаю, что:

- (void)applicationWillEnterForeground:(UIApplication *)application

Запускает, но как мне сделать его специфичным для определенной части viewController, которая была активной?

Ответы [ 2 ]

3 голосов
/ 31 января 2012

Возможно, вам нужны applicationDidBecomeActive: и applicationWillResignActive:, которые отправляются вашему делегату приложения.Также есть уведомления (например, UIApplicationDidBecomeActiveNotification), которые вы можете прослушать.

Они также публикуются, например, когда приходит системное предупреждение. Если вы просто хотите, чтобы вам сообщали, когда вы отправляетесь в фон, попробуйте applicationDidEnterBackground: и applicationWillEnterForeground:

Подробнее см. Apple Docs на жизненном цикле .

0 голосов
/ 16 февраля 2012

Просто для продолжения, так как на вопрос был дан ответ выше.

У меня была та же проблема, что и у Эрика, и затем я реализовал предложение Джесси об использовании applicationDidBecomeActive: для делегата. Я просто хотел убедиться, как вызывались все различные методы, и я нашел это:

  1. application:didFinishLaunchingWithOptions: вызывается в самом начале, как и ожидалось.
  2. Затем поворот viewDidLoad контроллера основного вида.
  3. Тогда viewWillAppear: вызывается.
  4. Возвращаясь к делегату приложения, запускается applicationDidBecomeActive: (здесь я называю мой метод reactivateTimer, который я реализовал в контроллере основного представления).
  5. Выполнен метод reactivateTimer.
  6. Последний шаг - вызов контроллера viewDidAppear:
...