2014-10-06 7 views
5

Ho un'estensione di condivisione implementata per iOS8. Il servizio utilizza OAuth per l'autenticazione. Le informazioni di accesso che utilizzo per l'estensione sono condivise con l'app contenitore.- Rileva "modifiche dello stato di estensione" (Sfondo/Primo piano)

Il problema è:

Quando sono nel prolungamento, quindi passare app per l'applicazione contenitore e logout, e poi app tornare alla applicazione dell'host contenente l'estensione - Come faccio a rilevare che l'estensione ha appena riapparso? L'estensione si basa su alcune informazioni presenti nel DB condiviso tra l'app contenitore e l'estensione, tuttavia, i dati vengono rimossi quando l'app si disconnette.

Ho provato a registrare per varie "notifiche app" come UIApplicationDidBecomeActiveNotification. Tuttavia, come previsto, questi non sono chiamati per le estensioni.

Come posso rilevare quando lo stato dell'estensione cambia in modo tale da rendere più robusta la mia estensione quando riappare?

risposta

0

Il metodo viewDidAppear:animated: della classe di controller vista principale deve essere chiamato ogni volta che si reinserisce l'estensione. Quando stai per partire, è necessario chiamare viewWillDisappear:animated:.

+1

Purtroppo questo non funziona. Queste funzioni non vengono chiamate in questo caso particolare (con estensioni). –

1

Vedi

NSExtensionContext.h 

iOS 8.2 ha aggiunto un numero di notifiche da utilizzare per le estensioni:

NSExtensionHostDidBecomeActiveNotification 
NSExtensionHostDidEnterBackgroundNotification 
NSExtensionHostWillEnterForegroundNotification 
NSExtensionHostWillResignActiveNotification 
+0

E soluzione per iOS 8.0? –

+0

Nessuno che abbiamo studiato. Abbiamo deciso di targetizzare 8.2+ e lasciarlo a quello. –