2013-06-16 10 views
8

Metoda applicationDidBecomeActive zostaje wywołana, gdy aplikacja stała się aktywna, czy istnieje sposób, w jaki mogę wykonać tę metodę dla określonego kontrolera UIViewController? Wiem, że istnieje viewDidAppear dla kontrolerów widoku, ale szukam metody, która jest wywoływana, gdy aplikacja staje się znowu aktywna I jest na określonym kontrolerze UIViewController. Jak mogę to osiągnąć?applicationDidBecomeActive w UIViewController?

Odpowiedz

29

Można słuchać UIApplicationDidBecomeActiveNotification zgłoszenia:

@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

proszę dodać połączenia do Super wewnątrz metod nadpisane. – Ecil

+1

Z nagłówków: '- (void) viewWillAppear: (BOOL) animowany; // Wywoływane, gdy widok ma się stać widoczny. Domyślnie nic nie robi i '- (void) viewWillDisappear: (BOOL) animowany; // Wywoływane, gdy widok jest odrzucany, ukryty lub w inny sposób ukryty. Domyślnie nic nie robi ". Więc nie ma potrzeby nazywania "super". – yonosoytu

Powiązane problemy