2013-06-16 2 views
8

Метод applicationDidBecomeActive вызывается, когда приложение становится активным, есть ли способ, которым я могу сделать этот метод для определенного UIViewController? Я знаю, что для контроллеров просмотров есть viewDidAppear, но я ищу метод, который вызывается, когда приложение снова становится активным и находится на определенном UIViewController. Как я могу это достичь?applicationDidBecomeActive в UIViewController?

ответ

29

Вы можете слушать UIApplicationDidBecomeActiveNotification уведомления:

@implementation CertainViewController 

- (void)viewWillAppear:(BOOL)animated { 
    [[NSNotificationCenter defaultCenter] 
    addObserver:self 
    selector:@selector(applicationDidBecomeActiveNotification:) 
    name:UIApplicationDidBecomeActiveNotification 
    object:[UIApplication sharedApplication]]; 
} 

- (void)viewWillDisappear:(BOOL)animated { 
    [[NSNotificationCenter defaultCenter] 
    removeObserver:self 
    name:UIApplicationDidBecomeActiveNotification 
    object:[UIApplication sharedApplication]]; 
} 

- (void)applicationDidBecomeActiveNotification:(NSNotification *)notification { 
    // Do something here 
} 

@end 
+0

Пожалуйста, добавьте вызовы супер внутри переопределенных методов. – Ecil

+1

Из заголовков: '- (void) viewWillAppear: (BOOL) анимированный; // Вызывается, когда представление собирается сделать видимым. По умолчанию ничего не делает и '- (void) viewWillDisappear: (BOOL) анимированный; // Вызывается, когда представление отклонено, закрыто или иным образом скрыто. По умолчанию ничего не происходит. Поэтому нет необходимости называть 'super'. – yonosoytu

Смежные вопросы