iphone - vib - Controlador UINavigation Push and Pop
vsphere web client 6.5 download (3)
Tengo que hacer pop a HomeScreenViewController desde el controlador de vista actual después de hacer clic en el botón Atrás personalizado, que se agrega en la ventana principal como una caja de luz. Utilicé el siguiente código:
HomeScreenViewController *homeController = [[HomeScreenViewController alloc]
initWithNibName:@"HomeScreenViewController" bundle:nil];
[self.navigationController popToViewController:homeController animated:YES];
[homeController release];
Me colapsé con la excepción: Tried to pop to a view controller that doesn''t exist.
¿Cómo se puede implementar? ¿Qué cambios se requieren para implementarlo?
Está claro que está creando una nueva instancia de HomeScreenViewController
que no existe en la pila de navegación. Deberá obtener la instancia existente y usarla como argumento para popToViewController:animated:
método. Puede hacerlo obteniendo el controlador de vista de la matriz viewControllers
que es una propiedad en UINavigationController
. Están indexados en orden, de modo que si el controlador de vista está en el índice 1, entonces obtenga el controlador de vista usando
UIViewController * viewController = [self.navigationController.viewControllers objectAtIndex:1];
[self.navigationController popToViewController:viewController animated:YES];
Si desea volver al controlador de vista raíz, use popToRootViewControllerAnimated:
lugar.
Prueba este amigo
[self.navigationController popToRootViewControllerAnimated:YES/NO];
Además, no olvide este código en su AppDelegate (.m):
navigationController = [[UINavigationController alloc] initWithRootViewController:self.viewController];
self.navigationController = navigationController;
self.window.rootViewController = self.navigationController;
[self.window makeKeyAndVisible];
y en AppDelegate (.h)
@property (strong, nonatomic) UINavigationController *navigationController;
A veces puede ser un problema cuando personalizas muchas cosas en tu aplicación.