2010-08-21 15 views
10

Quindi voglio supportare il cambio di app nella mia imminente app per iPhone e ho implementato tutti i metodi di delega appropriati nel mio delegato dell'applicazione. Quindi quando l'utente riprende l'applicazione, posso vedere la loro attività nel NSLog e tutto il resto. Tuttavia, come posso dire che la mia app ha ripreso un controller? C'è un metodo che posso inserire nel mio controller per dirmi che l'app è stata ripresa in tale controller? Motivo che chiedo è perché la mia applicazione gestisce il proprio schema URL, e voglio aggiornare la vista a seconda dell'URL lanciato. Qualsiasi aiuto sarà molto apprezzato.Come sapere quando il controller è stato ripreso dallo sfondo?

Grazie in anticipo

risposta

19

Si può avere il controller si osserva il UIApplicationWillEnterForeground notifica. Probabilmente sarebbe simile a questa:

- (void) viewDidLoad 
{ 
    [super viewDidLoad]; 
    //do stuff here 
    if(&UIApplicationWillEnterForegroundNotification) { //needed to run on older devices, otherwise you'll get EXC_BAD_ACCESS 
     NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter]; 
     [notificationCenter addObserver:self selector:@selector(enteredForeground:) name:UIApplicationWillEnterForegroundNotification object:nil]; 
    } 


} 
- (void)enteredForeground:(NSNotification*) not 
{ 
    //do stuff here 
} 
+0

Come posso fare? –

-2

È anche possibile sovrascrivere - (void)applicationDidBecomeActive:(UIApplication *)application nel delegato app per farlo fare quello che vuoi fare, quando si tratta di nuovo dallo sfondo. Se si desidera che una determinata vista visualizzi il messaggio anziché il delegato dell'app, è necessario registrarsi per la notifica come descritto da Elfred sopra.

1

per SWIFT 4:

NotificationCenter.default.addObserver(self, 
selector: #selector(appWillEnterForeground), 
name: NSNotification.Name.UIApplicationWillEnterForeground, 
object: nil) 



@objc func appWillEnterForeground() { 
    // do staff 
} 
+0

Il numero di parentesi aperta e chiusa non è uguale. – ittgung

+0

@ittgung grazie :) – chawki

Problemi correlati