2012-03-08 9 views
6

Sto sviluppando un'applicazione in cui diversi viewcontrollers sono spinti su uno stack di navigazione quando ricevono notifiche remote o locali.Trasferimento di ViewControllers a UINavigationController durante una transizione animata ViewController

Il problema si presenta quando l'applicazione è attiva e se arriva una notifica tra una transizione animata del controllo del viewcontroller. Questo scombina il navigationController e ottengo il seguente messaggio di errore:

nidificato animazione pop può portare a barra di navigazione danneggiato Finitura su una transizione di navigazione in uno stato imprevisto. Barra di navigazione albero subview potrebbe essere danneggiato.

C'è un modo per controllare se i controller di vista stanno cambiando e in tal caso attendere fino al completamento della transizione? O ci sono forse altri metodi per risolvere questo problema?

Come sempre, qualsiasi aiuto è molto apprezzato!

+1

Hai trovato una soluzione? Ho lo stesso problema: devo presentare un controller di visualizzazione quando arriva una notifica push. Posso individuare il controller di visualizzazione superiore/visibile e presentarlo sopra, ma se il controller di visualizzazione si trova nello stato di animazione di una transizione, l'app si blocca con "Tentativo di iniziare una transizione modale da a mentre una transizione è già in corso. " Nessuna delle proprietà di UIViewController come isBeingDismissed funziona poiché non restituiscono valori se non utilizzati da viewWillAppear –

risposta

4

Esistono alcuni metodi per ottenere lo stato di viewController. Ad esempio: (BOOL)isBeingPresented e (BOOL)isViewLoaded. Vorrei guardare in apple doc's on ViewControllers.

anche UINavigationController ha un paio di metodi anche come:

- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated 
Problemi correlati