En una aplicación de iPhone basada en UINavigationController, en un método me gustaría realizar el equivalente programático de presionar el botón Atrás y retroceder una vista.
es decir, presione automáticamente el botón Trabajos como se ve aquí:
¿Hay una llamada genérica de iOS que pueda hacer o se requiere más información?
ios
objective-c
button
uinavigationcontroller
Oberbaum
fuente
fuente
[self.navigationController popViewControllerAnimated:YES];
pero no hace nada, sin embargo, hay una alerta al grabar ese botón que está funcionando.Suponiendo que en realidad no desea PRESIONAR el botón mediante programación, sino que simplemente copia 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 lo devolverá al controlador de vista anterior.
fuente
Swift 3.0
self.navigationController?.popToRootViewController(animated: true)
self.navigationController?.popViewController(animated: true)
Swift 2.3
self.navigationController?.popToRootViewControllerAnimated(true)
self.navigationController?.popViewControllerAnimated(true)
fuente
Deberías llamar
popViewControllerAnimated:
que es lo opuesto a agregar controladores de vista con
pushViewController:animated:
fuente
[self.navigationController popViewControllerAnimates:YES];
es la mejor opción, pero si no está en la misma clase de controlador de vista o si su delegado cambia antes de que se llame al método del botón de retroceso, también puede intentar--
primero tienes que definir el 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 llamar a--
[self.navigationController pushViewController:desiredViewController animated:YES];
fuente