2010-01-21 13 views
82

En una aplicación de iPhone basada en UINavigationController, en un método me gustaría realizar el equivalente programático del botón Atrás que se está presionando y retroceder una vista.iphone - programmatically call navigation controller button

es decir, presione de forma automática en el botón Trabajos como se ve aquí:

Navigation Controller image

¿Hay un IOS genéricos llaman puedo hacer, o se requiere más información?

Respuesta

187

UINavigationController 's -popViewControllerAnimated: método debe hacer lo que quiera:

[navigationController popViewControllerAnimated:YES]; 
+12

impresionante, gracias a Steve y Niels. La solución que utilicé fue \t \t [self.navigationController popViewControllerAnimated: YES]; fácil;) – oberbaum

+0

esto funciona muy bien, excepto viewcontrollers agregado en uitabbar. ¿¿alguna pista?? – virata

+1

Agregué '[self.navigationController popViewControllerAnimated: YES];' pero no hace nada, sin embargo hay una alerta al grabar ese botón que está funcionando. –

7

Debe llamar

popViewControllerAnimated:

que es lo contrario de los controladores de vista añadiendo con pushViewController:animated:

24

que Asumiendo en realidad no quiero presionar el botón programáticamente, pero si Para copiar el resultado de presionar el botón, debe indicarle al controlador de navegación que muestre el controlador de vista actual.

[self.navigationController popViewControllerAnimated:YES];

Esto lo eliminará de la pila, y se vuelve a la vista anterior del controlador.

6
[self.navigationController popViewControllerAnimates:YES]; 

es la mejor opción, pero si usted está ni en la misma clase controlador de vista o sus cambios de delegados antes de su método de botón de retroceso llamada, entonces también puede try--

primero tiene que definir botón de retroceso ---

UIBarButtonItem *newBackButton = [[UIBarButtonItem alloc] initWithTitle: @"anyTitleForBackButton" style: UIBarButtonItemStyleBordered target: nil action: @selector(backButtonTapped)]; 

[[self navigationItem] setBackBarButtonItem: newBackButton]; 

[newBackButton release]; 

y luego en el método backButtonTapped puede call--

[self.navigationController pushViewController:desiredViewController animated:YES]; 
20

Swift 3,0

Volver a la vista raíz

self.navigationController?.popToRootViewController(animated: true) 

Volver a la vista anterior

self.navigationController?.popViewController(animated: true) 

Swift 2.3

Volver a la vista raíz

self.navigationController?.popToRootViewControllerAnimated(true) 

Volver a la vista anterior

self.navigationController?.popViewControllerAnimated(true) 
+0

Una respuesta agradable, lo estaba buscando –

+0

¡Gracias! Feliz ayudó ... –

Cuestiones relacionadas