En mi aplicación tengo BaseViewController (NavigationController) como controlador raíz. Normalmente uso el siguiente código para navegar:Usando pushViewController después de presentModalViewController
[self.navigationController pushViewController:childController animated:YES];
Pero en una de las acciones que quieren que el próximo fin de animar boton arriba, así que utilizo:
[self presentModalViewController:childController animated:YES];
Todo funciona hasta ahora. En la vista modal, quiero presionar otro controlador, pero parece que no funciona. He intentado lo siguiente:
// self.navigationController is null, so this doesn't work
[self.navigationController pushViewController:childController animated:YES];
// self.parentViewController is the BaseViewController and not null, but this
// won't work either. This also generates a warning "UIViewController' may not
// respond to '-pushViewController:animated:"
[self.parentViewController pushViewController:childController animated:YES];
En ambos casos no ocurre nada. ¿Está desactivado pushViewController mientras se muestra una vista modal? Si es así, ¿hay otra manera que puedo:
- Animar al lado del controlador de abajo hacia arriba
- animar el siguiente controlador de izquierda a derecha, con un botón de retroceso, como de costumbre. El botón Atrás debería llevarlo a la vista anterior (modal).
?
Según su respuesta, hice una solución que funciona. En lugar de presentar directamente el modal de childcontroller, creo otra instancia de BaseViewController y la agrego de manera modal. El control pushViewController funciona como se esperaba, ya que la vista modal contiene ahora un control de navegación: ChildController * childController = [[ChildController alloc] init]; BaseTrackingViewController * baseController = [[BaseTrackingViewController alloc] initWithRootViewController: childController]; [self presentModalViewController: baseController animated: YES]; –