Necesito un poco de ayuda sobre un problema con los controladores de navegación.popToRootViewControllerAnimated no muestra el controlador de vista raíz
Tengo un navigationController
con 4 ViewControllers
empujado. El último vc I push presenta un ViewController
adicional de forma modal. El modal ViewController
presenta un ActionSheet
. Dependiendo de la respuesta del usuario, descarto el modal ViewController
solamente o quiero volver al directorio raíz ViewController
.
En el ViewController
presentado de forma modal que tengo:
- (void) dismissGameReport
{
[[self delegate] GameReportModalWillBeDismissed:modalToPopToRoot];
}
En el último ViewController
inserta en la pila navigationController
tengo:
- (void)GameReportModalWillBeDismissed: (BOOL)popToRoot;
{
if (popToRoot)
{
[self.navigationController popToRootViewControllerAnimated:NO];
}
else
{
[self dismissModalViewControllerAnimated:YES];
}
}
Descartando la vista modal controlador funciona bien. Sin embargo,
[self.navigationController popToRootViewControllerAnimated:NO];
no causa la raíz ViewController
para mostrar sus puntos de vista. Agregando un poco de información de registro veo que después del mensaje a self.navigationController
la pila aparece correctamente pero la ejecución continúa secuencialmente. La pantalla aún muestra la vista del ViewController modal.
Como solución probé siempre descartar el controlador de vista modal y en el método ViewWillAppear
tengo el mensaje popToRootAnimated
. Ninguna diferencia. Aún así, la pila de controladores aparece, pero la pantalla continúa mostrando la vista de mi controlador de vista modal y la ejecución continúa secuencialmente.
¿Alguien podría ayudarme por favor?
¿Has intentado depurar con punto de interrupción al que entra tu compilador en el ciclo? – Hiren