2011-01-05 14 views
8

Ho appreso che la mia app non si comporta bene su multitasking iOS nel caso in cui un determinato ViewController fosse attivo quando si esce dall'app. Questo controller di vista deve raccogliere informazioni recenti per visualizzarlo. Il codice di inizializzazione finora disponibile per la raccolta di queste informazioni è stato inserito solo in viewWillAppear.UIApplicationWillEnterForegroundNotification versus viewWillAppear - pattern per l'inizializzazione?

Ora ho imparato che viewWillAppear non verrà chiamato quando la vista apparirà dallo sfondo.

Poiché il mondo potrebbe essere cambiato da quando l'app è stata inviata in background, il controller della vista deve essere reinizializzato. Comprendo che posso registrarmi per UIApplicationWillEnterForegroundNotification. Tuttavia, questo si attiva ogni volta che l'app ritorna in primo piano, indipendentemente dal fatto che l'utente stia navigando verso questa particolare viewController.

Avete uno schema su come utilizzare UIApplicationWillEnterForegroundNotification solo quando ViewController è attivo nel senso di "apparirà a breve"?

risposta

7

Registrazione per UIApplicationWillEnterForegroundNotification in viewWillAppear: e annullamento registrazione in viewWillDisappear:. In questo modo riceverai una notifica solo quando la vista è effettivamente visibile.

+0

Questo suona così ovviamente giusto. Ho confermato che funziona così. Grazie mille. – Miriam