2012-10-09 12 views
23

Sto tentando di creare una sequenza di svolgimento ma nulla si collegherà ad esso quando ctrl + trascinamento. Inoltre, quando faccio clic con il pulsante destro del mouse sull'icona Esci, non ci sono opzioni disponibili.Impossibile connettersi Storyboard Svela Segue

enter image description here

Tutte le idee?

+1

su una questione analoga ho postato questa risposta: http://stackoverflow.com/questions/12569316/does-anyone-know-what-the-new- exit-icon-is-used-for-when-editing-storyboards-usi/13437054 # 13437054 – Eric

risposta

64

È necessario disporre di una IBAction definita su un controller di visualizzazione che accetta un argomento di tipo "UIStoryboardSegue *".

Qualcosa di simile a questo:

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

Swift 3 Versione

@IBAction func unwindToViewController(segue: UIStoryboardSegue) { 

    //code 

} 

Fornito da DoruChidean in https://stackoverflow.com/a/46199117/250190

+0

Ah sì! Grazie, funziona perfettamente. Si tratta solo di definire l'argomento UIStoryboardSegue. Ho avuto il setup come 'done: (id) sender'. –

+0

Sono felice di poterti aiutare. La severità extra è così che ogni azione del tuo progetto non viene scelta come scelta. –

+0

Ha senso, grazie per le informazioni. –

18

Giusto per chiarire, per collegare questo in storyboard, dopo aggiungendo il metodo sopra al "view controller vuoi rilassarti "devi trascinare un seguito da un pulsante o qualsiasi altra cosa nel tuo" controller di visualizzazione da cui desideri "da" giù a è proprio icona verde "ESCI" nella barra in basso.

Dovrebbe essere presente un popup per il collegamento a "- unwindFromConfirmationForm".

Una volta fatto, il processo di svolgimento dovrebbe funzionare.


solo l'aggiunta di Travis ottimo punto: essere assolutamente chiaro:

dire che hai appena iniziato a sperimentare con storyboard in modo da (a) ha fatto un nuovo progetto iOS7 Xcode e (b) ha fatto una storia scheda con un controller di navigazione, quindi (c) hai eseguito cinque o sei controller di visualizzazione. Si mira ad essere in grado di andare avanti e indietro tra la mezza dozzina di controller della vista usando i ritmi. {E 'banale per andare "avanti" per il controllo trascinando da un pulsante in uno, per, quello successivo.}

Ora, in questo momento: tutti e sei i controller di vista, sarà infatti essere il "default "class" ViewController ". Si noti che Xcode (in qualche modo inutile) fornisce un file ViewController.h e ViewController.m.

Ancora una volta, tutte e sei le visualizzazioni di "esempio semplice" utilizzano effettivamente il file ViewController.m, in questo momento. Così, molto semplicemente, se si aggiunge questo:

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

Per quel file uno "stub" ViewController.m - infatti, ogni uno dei vostri sei viste sarà ora "lavoro", sarete in grado per trascinare il famigerato pulsante verde "Esci". È così facile

Ora solo TBC normalmente in un progetto reale, non si utilizzerà mai il file "ViewController.m" predefinito. Quindi, andate qui:

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

e trovare verso il basso per l'appunto "Creare personalizzato View Controller", e, naturalmente, spiega che nel processo di dettaglio eccellente se sei nuovo.

Ma ancora una volta, se stai scherzando e vuoi far funzionare il pulsante verde per lo svolgimento, inserisci semplicemente il frammento di codice nel file di stub "ViewController.m" e sei via. (Ricordando che nella "vita reale" hai inserito una chiamata personalizzata in ciascuna delle tue schermate personalizzate - probabilmente trattando dati, ecc. Ecc.) Spero che aiuti !!

Bonus factoid: Si noti che un pulsante "Indietro" verrà comunque visualizzato automaticamente sulla barra di navigazione quando si esegue il test in questo modo! (Ad esempio, anche se non si aggiunge il metodo di stub di svolgimento.)

+1

corretto. È tutto un po 'confuso all'inizio IMO, ma sembra funzionare bene. –

+0

Risposta straordinariamente utile; Ho aggiunto qualche altra informazione che potrebbe aiutare la gente – Fattie

0

Stai lavorando con la versione xcode6-beta? nella beta 1-3 è un bug che impedisce al generatore di interfacce di rilevare i segui di unwind. in xcode6-beta4 questo bug è stato corretto.

+0

Nah, questo era anni fa. La firma del metodo stava causando il problema. –

+0

Ohhh, scusa, non ho visto che era anni fa. Comunque sono contento che il problema sia risolto – Fred

1

Voto positivo per Jon Hess! Questo è il rapido 3 equivalente

@IBAction func unwindToViewController(segue: UIStoryboardSegue) { 

    //code 

} 
+0

Grazie, ho aggiornato la risposta di Jon con questo. –

Problemi correlati