Imagina que tienes una secuencia de vistas en tu guión gráfico:
A -> ... -> Z
Desea tener un botón a la vista Z
que le permita al usuario volver a A
.
Entonces, lo que debe hacer es dar la vista a la que desea retroceder completamente, en este caso A
, un método de instancia que está marcado como a IBAction
y toma un solo parámetro de tipo UIStoryboardSegue *
. El nombre del método y la variable no importan. Lo que hagas dentro de la implementación tampoco importa. He aquí un ejemplo:
Obj-C: Interfaz de
In A
(no Z
de):
- (IBAction)cancelSignup:(UIStoryboardSegue *)unwindSegue;
A
Implementación de In (no Z
de):
- (IBAction)cancelSignup:(UIStoryboardSegue *)unwindSegue {
// Only "implemented" to satisfy a respondsToSelector: search.
// You can actually implement more stuff here, if you want, IE, if
// you need to reach out to a server to mention that this screen was
// returned to from a later screen.
}
Swift: Fuente de
In A
(no Z
de):
@IBAction func cancelSignup(unwindSegue: UIStoryboardSegue) {
// Only "implemented" to satisfy a respondsToSelector: search.
// You can actually implement more stuff here, if you want, IE, if
// you need to reach out to a server to mention that this screen was
// returned to from a later screen.
}
Ahora, dentro de su guión gráfico, controlarrastre desde un elemento en Z
(IE, un botón de cancelación) a Z
's Exit
. Analizará todas las vistas más arriba en la jerarquía de vistas que tienen un IBAction
que acepta solo una UIStoryboardSegue *
como acción y las enumerará para que las elija.
Con suerte, esto fue más sencillo y útil que las respuestas existentes. Descubrí que este enlace era particularmente útil, por lo que si hay algún detalle en el que aún estás confuso después de leer mi respuesta, tal vez esto pueda ayudarte (traté de condensar toda la información útil de este largo artículo en una respuesta corta):
http://www.freelancemadscience.com/fmslabs_blog/2012/9/24/advanced-storyboard-techniques.html