Aquí es una técnica de viniendo rápidamente dos controladores de vista, que tiene un problema similar de los suyos del controlador de vista actual y su propiedad navigationController se va a desaparecer tan pronto como lo hace el primer estallido:
// pop back 2 controllers on the stack to the setup screen
//
// locally store the navigation controller since
// self.navigationController will be nil once we are popped
//
UINavigationController *navController = self.navigationController;
// retain ourselves so that the controller will still exist once it's popped off
//
[[self retain] autorelease];
// Pop back 2 controllers to the setup screen
//
[navController popViewControllerAnimated:NO];
[navController popViewControllerAnimated:YES];
alternativamente, puede directamente "parte" en los controladores de navegación pila de controladores de vista:
setViewControllers: animada: Sustituye los controladores de vista actualmente gestionados por el controlador de navegación con el artículos especificados.
- (void) setViewControllers: (NSArray *) viewControllers animados: (BOOL) animada Parámetros viewControllers Los controladores de vista para colocar en la pila. El orden de adelante a atrás de los controladores en esta matriz representa el nuevo orden de de abajo a arriba de los controladores en la pila de navegación. Por lo tanto, el último elemento agregado a la matriz se convierte en el elemento superior de la pila de navegación. animado Si es SÍ, anime el empuje o haga clic en el controlador de vista superior. En caso negativo, reemplace los controladores de vista sin ninguna animación. Discusión Usted puede usar este método para actualizar o reemplazar el controlador de vista actual apilar sin presionar ni hacer saltar cada controlador explícitamente. Además, este método permite actualizar el conjunto de controladores sin la animación de los cambios, que podrían ser apropiadas en el momento del lanzamiento cuando se quiere volver el control de navegación a un estado anterior .
Si se habilitan las animaciones, este método decide qué tipo de transición a realizar en función de si el último elemento de la matriz artículos ya está en la pila navegación. Si el controlador view se encuentra actualmente en la pila, pero no es el elemento superior, este método usa una transición pop; si es el elemento superior, no se realiza ninguna transición . Si el controlador de vista es que no está en la pila, este método usa una transición de inserción . Solo se realiza una transición , pero cuando finaliza esa transición , todo el contenido de la pila se reemplaza por la nueva vista controladores.Por ejemplo, si los controladores A, B y C de están en la pila y configura los controladores D, A, y B, este método usa una transición pop y la pila resultante contiene los controladores D, A y B
Disponibilidad Disponible en iOS 3.0 y después. Declarado En UINavigationController.h
Por lo tanto, a "desaparecer" el controlador de vista directamente en virtud de que en la pila de navegación, en viewDidLoad de su controlador de vista, se puede hacer esto:
NSMutableArray *VCs = [self.navigationController.viewControllers mutableCopy];
[VCs removeObjectAtIndex:[VCs count] - 2];
self.navigationController.viewControllers = VCs;
¿Por qué quieres probar a hacer esto? –
Requisito para la aplicación. Alternativamente, podría hacer estallar el controlador de vista actual, luego presionar el siguiente, pero el actual sería liberado antes de completar el empuje. – TigerCoding