Tengo un proyecto con un NavigationController, que contiene en IB el primer ViewController para mostrar. Ese es el patrón predeterminado al crear el proyecto.iPhone - Reemplazo de la vista de raíz en el controlador de navegación
En esa primera viewController, recibo algún evento que envío a la aplicaciónDelegate, y quiero que reemplace esa vista de raíz con otra. No yendo a uno siguiente.
por lo que:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
// Add the navigation controller's view to the window and display.
self.window.rootViewController = self.navigationController;
[self.window makeKeyAndVisible];
return YES;
}
- (void) goNext {
[self.navigationController popViewControllerAnimated:NO];
NextViewController* nextWindow = [[[NextViewController alloc] initWithNibName:@"NextView" bundle:nil] autorelease];
[self.navigationController pushViewController:nextWindow animated:NO];
}
Pero eso no funciona, la primera viewcontroller no se poped. Y el segundo se muestra lógicamente con un botón Atrás.
Solo quiero reemplazar esa primera vista con la otra como inicio del proceso de navegación.
Si el controlador de vista en la parte superior de la pila es el controlador de vista raíz, el método 'popViewControllerAnimated:' no hace nada. En otras palabras, no puede mostrar el último elemento en la pila. Puede probar el método 'setViewControllers: animado:' en su lugar. – albertamg
¿No puede simplemente cambiar su controlador de vista de raíz a NextViewController en xib? – Deeps