2015-12-18 18 views
5

Questo è il mio Escenario:[iOS]: rilevare quando View Controller appare dopo ritorno da un'altra applicazione esterna

ho un controller della vista in cui l'utente può passare ad un'altra applicazione (Impostazioni) quando premere un pulsante in questo modo :

-(void) goToSettings{ 
     [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]]; 
    } 

Quindi, questo codice aprire le impostazioni dello schermo del app e si vede in alto a sinistra una leggenda come questa:

Torna myApplication

Desidero rilevare quando il controller di visualizzazione in cui l'utente preme il pulsante è di nuovo attivo. So che è possibile rilevare quando app è attiva ancora una volta con questo metodo nel file delegato

- (void)applicationWillEnterForeground:(UIApplication *)application 

Ma ho bisogno di rilevare in particolare il controller della vista. Ho provato con -(void)viewWillAppear:(BOOL)animated ma non funziona. Qualcuno ha qualche idea su questo?

risposta

7

Imposta il tuo controller di visualizzazione per ascoltare la notifica UIApplicationDidBecomeActiveNotification.

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

Poi aggiungere il metodo becomeActive::

- (void)becomeActive:(NSNotification *)notification { 
    // App is active again - do something useful 
} 

ed essere sicuri di rimuovere l'osservatore nel punto appropriato.

[[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidBecomeActiveNotification object:nil]; 

Ovviamente l'app potrebbe essere nuovamente attiva per molti motivi, non solo per tornare dall'app Impostazioni.

Problemi correlati