2012-10-09 31 views
23

Estoy intentando crear un segue de desenrollado pero nada se conectará a él cuando presione Ctrl + arrastrando. Además, cuando hago clic con el botón derecho en el ícono Salir, no hay opciones disponibles.No se puede conectar el guión gráfico Desenrollar Segue

enter image description here

¿Alguna idea?

+1

En una pregunta similar que he publicado esta respuesta: http://stackoverflow.com/questions/12569316/does-anyone-know-what-the-new- exit-icon-is-used-for-when-editing-storyboards-usi/13437054 # 13437054 – Eric

Respuesta

64

Necesita tener un IBAction definido en un controlador de vista que toma un argumento de tipo "UIStoryboardSegue *".

Algo como esto:

@interface MyViewController 
... 
- (IBAction)unwindFromConfirmationForm:(UIStoryboardSegue *)segue { 
} 
... 
@end 

Swift 3 Versión

@IBAction func unwindToViewController(segue: UIStoryboardSegue) { 

    //code 

} 

Proporcionado por DoruChidean en https://stackoverflow.com/a/46199117/250190

+0

Ahh sí! Gracias, funciona perfecto. Solo se trata de definir el argumento UIStoryboardSegue. Lo tenía configurado como 'done: (id) sender'. –

+0

Me alegro de poder ayudar. El rigor extra está ahí para que cada acción en su proyecto no surja como una elección. –

+0

Tiene sentido, gracias por la información. –

18

Solo para aclarar, para vincular esto en guión, después de agregando el método anterior al "controlador de vista" desea desconectarse de "necesita arrastrar un segue desde un botón o lo que sea en su" controlador de vista desde el que desea desconectarse "hasta su propio icono" EXIT "verde en la barra inferior.

Debe haber una ventana emergente para vincular a "- unwindFromConfirmationForm".

Una vez hecho esto, la secuencia de desenrollado debería funcionar.


sólo añadir a Travis excelente punto: ser absolutamente claro:

Digamos que acabas de empezar a experimentar con guiones gráficos para que (a) hizo un nuevo proyecto iOS7 Xcode y (b) hizo una historia tablero con un controlador de navegación, y luego (c) ha creado cinco o seis controladores de vista. Tu objetivo es poder ir y venir entre la media docena de controladores de vista que usan desenrolla. {Es trivial "avanzar" arrastrando y presionando desde un botón en uno, hasta el siguiente.}

Ahora, en este momento: los seis controles de vista, serán de hecho los "predeterminados" "clase" ViewController ". Tenga en cuenta que Xcode (algo sin sentido) le da un archivo ViewController.h y ViewController.m.

De nuevo, las seis vistas de "ejemplo simple" de hecho solo usan ese archivo ViewController.m, en este momento. Por lo tanto, muy simplemente, si se añade lo siguiente:

-(IBAction)unwindUnused:(UIStoryboardSegue *)segue 
    { 
    NSLog(@"I did an unwind segway! Holy crap!"); 
    } 

Para que un archivo "stub" ViewController.m - de hecho, cada una de sus seis puntos de vista a partir de ahora "trabajo", podrás para arrastrar al infame botón verde "Salir". Es fácil.

Ahora solo TBC normalmente en un proyecto real, nunca usaría el archivo predeterminado "ViewController.m". Así pues, vaya aquí:

https://developer.apple.com/library/ios/referencelibrary/GettingStarted/RoadMapiOS/SecondTutorial.html

y encontrar a "Crear vista personalizada Controllers" de modo preciso y, por supuesto, explica que el proceso en detalle excelente si usted es nuevo.

Pero, nuevamente, si solo está bromeando y quiere hacer que el botón verde funcione para relajarse, simplemente coloque el fragmento de código en el archivo de resguardo "ViewController.m", y ya está. (Recordando que en la "vida real" pondría una llamada personalizada en cada una de sus pantallas personalizadas, probablemente tratando con datos, etc. etc.) ¡Espero que ayude!

Factoid de bonificación: Tenga en cuenta que un botón "Atrás", de todos modos, aparecerá automáticamente en la barra de navegación cuando solo esté probando así! (es decir, incluso si no agrega el método stub de desenrollado)

+1

Correcto. Al principio, todo es un poco confuso pero parece funcionar bien. –

+0

Respuesta fantásticamente útil; Agregué más información que puede ayudar a la gente – Fattie

0

¿Está trabajando con la versión xcode6-beta? en beta 1-3 es un error que impide que el constructor de interfaz detecte los desenrollamientos. en xcode6-beta4 este error ha sido reparado.

+0

Nah, esto fue hace años. La firma del método estaba causando el problema. –

+0

Ohhh lo siento no vi que fue hace años. De todos modos estoy contento de que el problema haya sido resuelto – Fred

1

Votación a favor por Jon Hess! Esta es la rápida 3 equivalentes

@IBAction func unwindToViewController(segue: UIStoryboardSegue) { 

    //code 

} 
+0

Gracias, he actualizado la respuesta de Jon con esto. –

Cuestiones relacionadas