2014-10-20 16 views
21

In Swift Ho un pulsante creato programmaticaly utilizzando:Come posso creare un seguito che può essere chiamato da un pulsante creato a livello di codice?

var button = UIBarButtonItem(title: "Tableau", style: .Plain, target: self, action: "tabBarTableauClicked") 

voglio che quando l'utente fa clic sul pulsante cambia viewControllers. Qui è il codice per tabBarTableauClicked:

func tabBarTableauClicked(){ 
    performSegueWithIdentifier("tableau", sender: self) 
} 

ma non lo è, ovviamente, lavorando perché non c'è segue con un identificatore chiamato "Tableau".

E non riesco a creare un seguito utilizzando Ctrl + clic sul pulsante e trascinandolo sul secondo viewController perché il pulsante è stato creato programmaticamente e non nello Storyboard.

Come posso creare un seguito con un identificatore a livello di codice in Swift?

+1

Segues non possono essere creati al di fuori dello storyboard. http://stackoverflow.com/questions/9674685/creating-a-segue-programmatically – user3746428

+0

I tuoi controller di visualizzazione prima e seconda nello storyboard? – vacawama

+0

Sì, ma il pulsante non è –

risposta

81

Ecco come impostare un seguito in modo che possa essere chiamato a livello di programmazione.

  • controllo trascinate dal icona ViewController nel primo controllore vista del secondo controllore vista.
  • Cliccare sulla freccia segue tra i due controller di vista, e nel Attributi sulla destra, dare la segue un identificatore (tableau nel tuo caso).
  • Quindi è possibile attivare il seguito con performSegueWithIdentifier nel codice.

enter image description here

Si può leggere di più sulla configurazione e l'utilizzo di segues here.

+0

Ho provato questo, ma sto ancora ottenendo lo stesso errore "non ha seguito con identificatore 'someIdentifier" ... – SomeGuy

+17

Non era il punto di questa domanda per farlo PROGRAMMATIVAMENTE? –

+3

@ MarkLöwe, l'OP voleva attivare un seguito da un pulsante creato a livello di codice. Si sbagliava nel pensare che il seguito non potesse essere cablato perché il pulsante non esiste nello Storyboard. Gli ho mostrato che i passaggi possono essere cablati fintanto che entrambi i VC sono presenti nello Storyboard, e quindi il pulsante creato a livello di codice può attivare quel seguito. Ho risolto quello che voleva fare, se non esattamente quello che la sua domanda ha posto. – vacawama

Problemi correlati