2012-03-08 7 views
6

Estoy desarrollando una aplicación donde diferentes controles de vista se insertan en una pila de navegación cuando se reciben notificaciones remotas o locales.Al presionar ViewControllers a UINavigationController durante una transición animada de ViewController

El problema surge cuando la aplicación está activa y si hay una notificación entre una transición animada del control de visualización. Esta meta la pata de la navigationcontroller y me sale el siguiente mensaje de error:

animación emergente anidada puede resultar en la barra de navegación dañado Acabado una transición de navegación en un estado inesperado. Barra de navegación árbol de la subvista podría corromperse.

¿Hay alguna forma de comprobar si los controles de visualización están cambiando y, de ser así, esperar hasta que se complete la transición? ¿O hay quizás otros métodos para resolver este problema?

Como siempre, cualquier ayuda es muy apreciada.

+1

¿Ha encontrado una solución? Tengo el mismo problema: necesito presentar un controlador de vista cuando llegue una notificación de inserción. Puedo ubicar el controlador de vista superior/visible y presentarlo encima, pero si ese controlador de vista está en el estado de animar una transición, la aplicación falla con "Intento de comenzar una transición modal de a mientras una transición ya está en progreso. " Ninguna de las propiedades de UIViewController como isBeingDismissed funciona, ya que no devuelven valores a menos que se utilicen desde viewWillAppear –

Respuesta

4

Existen algunos métodos para obtener el estado de viewController. Tales como: (BOOL)isBeingPresented y (BOOL)isViewLoaded. Me gustaría ver en la apple doc's on ViewControllers.

también UINavigationController tiene un par de métodos también como:

- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated 
Cuestiones relacionadas