Acabo de instalar Xcode 4.5 para compatibilidad con iOS6, y he visto un nuevo ícono llamado 'Salir' en mi Storyboard, que aparece debajo de mis controladores de vista junto con 'Primera respuesta', etc. Un pequeño ícono verde con la etiqueta 'Salir'.
Puedo encontrar algo en él ni averiguar cómo se puede usar.
Alguien sabe algo al respecto, cómo funciona, para qué sirve?
iphone
objective-c
xcode
ipad
storyboard
Josh Kahane
fuente
fuente
Respuestas:
Esto se denomina " Segue de desconexión ". Desafortunadamente, no hay documentación para esto hasta ahora, excepto una breve mención en la lista de nuevas características de XCode 4.5 que dice:
La buena noticia es que hay una sesión de WWDC 2012 que explica esas criaturas (entre otras cosas).
Puede iniciar sesión en el Centro de desarrollo de iOS de Apple con los detalles de su cuenta de desarrollador y luego ir a la página de videos de la WWDC 2012 y ver "Adopción del guión gráfico en su aplicación" (es el quinto desde la parte superior). .
Actualización: aquí hay más información sobre el tema de la documentación de Apple
(Desde el docset de iOS6> General> Introducción)
Y aquí hay un buen ejemplo de cómo puede implementar uno
Otra actualización:
Aquí hay una nota técnica de Apple sobre este tema.
fuente
exit
botón seleccionando el método que desea llamar. Puede encontrar un ejemplo aquí (también he actualizado mi respuesta para incluir el ejemplo)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 aA
.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 aIBAction
y toma un solo parámetro de tipoUIStoryboardSegue *
. 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
(noZ
de):A
Implementación de In (noZ
de):Swift: Fuente de
In
A
(noZ
de):Ahora, dentro de su guión gráfico, controlarrastre desde un elemento en
Z
(IE, un botón de cancelación) aZ
'sExit
. Analizará todas las vistas más arriba en la jerarquía de vistas que tienen unIBAction
que acepta solo unaUIStoryboardSegue *
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
fuente
Consulte también No se puede conectar Storyboard Unwind Segue, que aclara los requisitos para que el icono de salida cobre vida. Debe tener, más arriba en la jerarquía del controlador de vista, un método que sea:
Marcado como IBAction
Toma un parámetro que es UIStoryboardSegue *
Si se cumplen ambas condiciones, el icono Salir lo verá y le permitirá conectarse a él mediante el control y arrastre desde un botón en el mismo controlador de vista.
También he publicado aquí el ejemplo más simple del mundo:
https://github.com/mattneub/Programming-iOS-Book-Examples/tree/master/ch19p638presentedViewControllerStoryboard (solucionado el 12 de julio de 2013)
Esto muestra lo trivialmente fácil que es ahora ir y volver desde un controlador de vista presentado, a diferencia de todo el trabajo que tenía que hacer anteriormente para pasar información de un lado a otro (las cosas en la plantilla con un delegado y un protocolo , todos los cuales ahora se pueden eliminar).
fuente
Simplemente agregando una leve sutileza a la definición de requisitos que podría ayudar. Esto se basa en experimentar en Xcode 4.6. Descubrí que es específicamente y solo la declaración (!) Del método lo que habilita la respuesta deseada de control y arrastre de Xcode. Estos son los requisitos completos que encontré:
IBAction
UIStoryboardSegue
*.M
sección de implementación])..M
, excepto en la clase appdelegate. (No vi ninguna dependencia en su posición en la jerarquía del controlador. Puede agregar cualquier archivo antiguo y el sistema parece agregar todos los métodos que tienen elUIStoryboardSegue
parámetro y mostrarlos en el menú del icono Salir). Tenga en cuenta que el control-arrastrar El menú incluso le mostrará su método si el método está en la clase de la escena que está manipulando en el editor de guión gráfico, pero aparecerá sin dos puntos y no parece desencadenar ninguna acción en tiempo de ejecución.Ejemplo:
-(IBAction)anymethodname:(UIStoryboardSegue *)myvariable;
fuente