Что вызывается после срабатывания UIApplicationDidBecomeActiveNotification? - PullRequest
3 голосов
/ 02 января 2012

В моем приложении я стараюсь, чтобы панель навигации не уменьшалась с 44 до 32 пикселей, когда телефон поворачивается в горизонтальное положение. Я смог сделать это, установив рамку navigationBars при повороте представления, а также в viewDidAppear. Однако, когда я нажимаю кнопку «Домой» для выхода из приложения, а затем снова вхожу в приложение, панель навигации по-прежнему сжимается. Поэтому я реализовал уведомление, чтобы обнаружить UIApplicationDidBecomeActiveNotification, и в этом методе я сбросил высоту кадра navigationBar до 44px. Однако, это не работает, потому что что-то вызывается, что сбрасывает мой фрейм представлений. Кто-нибудь знает, что вызывается после срабатывания UIApplicationDidBecomeActiveNotification, который сбрасывает фрейм viewcontrollers?

Ответы [ 2 ]

0 голосов
/ 03 декабря 2012

У меня та же проблема: если вы подключите наблюдателя через Key Value Observers, вы увидите, что что-то вызывается после UIApplicationDidBecomeActiveNotification.

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

В вашем приложении любой класс может быть «наблюдателем» за разными уведомлениями. Когда вы создаете контроллер представления, вы можете зарегистрировать его в качестве наблюдателя для UIApplicationDidBecomeActiveNotification и указать, какой метод вы хотите вызвать, когда это уведомление будет отправлено вашему приложению.

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myMethod:) name: UIApplicationDidBecomeActiveNotification object:nil];

удалить наблюдателя в ViewWillDisappear / viewDidDisAppear / Dealloc в соответствии с вашими потребностями:

[[NSNotificationCenter defaultCenter] removeObserver:self];
...