UIViewController's viewDidAppear / viewDidDisappear: когда именно эти методы должны вызываться? - PullRequest
1 голос
/ 11 февраля 2011

Мне определенно нужно уточнить, когда именно методы viewDidAppear / viewDidDisappear должны вызываться ...

  1. Если приложение входит в фоновый режим при отображении некоторого представления, в этом случае я ожидаю, что viewDidDisappear будет вызываться на UIViewController, связанном с этим представлением. С другой стороны, если приложение выходит на передний план после фона, я ожидаю, что будет вызван viewDidAppear. Но так не получается.
  2. Если UINavigationController отображает UIViewController, который мы называем «A», и этот UIViewController связан с представлением, у которого есть подвид, связанный с другим UIViewController, который мы называем «B», метод viewDidAppear НЕ вызывается на контроллере «B». Должен ли я сам распространять viewDidAppear? Я в замешательстве ...

Заранее спасибо!

Ответы [ 2 ]

3 голосов
/ 11 февраля 2011
  1. Они не вызваны, потому что они не исчезают и не появляются снова, если вы не скажете им исчезнуть. Вся ваша заявка приостановлена. Вам нужно прослушать сообщения делегатов приложения applicationDidBecomeActive: и applicationWillResignActive:, если вы хотите знать, было ли ваше приложение приостановлено или будет повторно активировано. Вы также можете зарегистрироваться для уведомлений UIApplicationDidBecomeActiveNotification и UIApplicationWillResignActiveNotification.

  2. Да, вы должны распространять viewDidAppear: сообщения для ваших подпредставлений вручную. Это работает как задумано.

0 голосов
/ 05 декабря 2011

Также есть:

(также метод делегата приложения):

- (void)applicationDidEnterBackground:(UIApplication *)application
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...