iphone - privada - Descartar vista empujada desde el controlador de navegación
navegacion privada ios 12 (5)
En Objective-C es
[self.navigationController popViewControllerAnimated:YES];
para un salto al primer controlador root
[self.navigationController popToRootViewControllerAnimated:YES];
O es un posible movimiento hacia el controlador específico.
[self.navigationController popToViewController:(nonnull UIViewController *) animated:(BOOL)];
Animación específica del proceso de animación de mover el controlador. Si la animación es false
el controlador aparecerá sin animaciones. El UIViewController
debe ser de uno que esté en la pila.
Tengo un controlador de navegación con un controlador de vista que muestra un botón. El botón está vinculado a otro Controlador de vista mediante un segmento de inserción que agrega automáticamente una barra de navegación superior con un botón Atrás. Todo esto funciona bien. Al presionar el botón Atrás se desliza fuera de la segunda vista y vuelve a la primera.
Tengo un botón en el 2nd View Controller, que cuando se presiona ejecuta un código y una llamada de delegado al 1st View Controller. De nuevo esto funciona bien.
Ahora solo necesito descartar la segunda vista presionada desde el código como si se presionara el botón Atrás. He intentado usar el modo de descontarModalViewCcontrollerAnimated y dismissViewControllerAnimated, pero ambos descartan todo el Controlador de Navegación que elimina la vista 2 y 1 (regresando a mi menú principal).
¿Cuál es la forma correcta de deslizarse fuera de la vista.
En Swift se estaría llamando al método.
self.navigationController?.popViewControllerAnimated(true)
En swift también puedes llamar:
self.navigationController?.popToRootViewControllerAnimated(true)
Obtenga una referencia a su UINavigationController y llame
- (UIViewController *)popViewControllerAnimated:(BOOL)animated
en eso.
Si usamos push segue, entonces usamos popViewController
@IBAction func backButtonClicked(_ sender: Any) {
self.navigationController?.popViewController(animated: false)
}