2012-03-05 16 views
13

I miei registri UIViewController per le notifiche inviate dal componente del mio modello al termine del download del contenuto.Esiste un metodo UIViewController che viene chiamato automaticamente quando l'app si sposta sullo sfondo?

Il download può avvenire in background (utilizzando beginBackgroundTaskWithExpirationHandler:), quindi ovviamente non voglio che la GUI tenti di ridisegnare ecc. Se il download viene completato in background.

Quindi immagino di avere due scelte: 1) il modello sa quando è in background/in primo piano e non attiva le notifiche. 2) il UIViewController deregisters per le notifiche quando è in background.

Opzione 2) è preferibile.

C'è un metodo su UIViewController che viene sempre chiamato quando l'app va in secondo piano? O lo UIViewController deve registrarsi per ricevere un evento di notifica quando l'app si sposta in background?

(sembra viewWillDisappear, viewWillUnload ecc non si ottiene chiamato quando l'applicazione si sposta verso il fondo?)

risposta

21

rendere la vostra vista registro controller per UIApplicationDidEnterBackgroundNotification in view did load ... il metodo di selezione associata verrà chiamato prima immissione dello sfondo ..

+2

+1 Tuttavia, è possibile che l'aggiornamento dell'interfaccia utente al risveglio sia complicato. Quando l'app è in background, il dispositivo iOS acquisirà uno screenshot e presenterà questo screenshot quando l'app riprenderà. Ciò significa che se aggiorni la tua interfaccia utente nell'applicazione '- (void) applicationDidBecomeActive: (UIApplication *)' che l'utente vedrà la schermata precedente e cambierà in modo permanente qualsiasi cosa tu abbia cambiato nell'interfaccia utente .... – Sam

Problemi correlati