2014-12-25 10 views
6

Sto provando a passare alla seconda vista premendo il pulsante "sentirsi fortunati". Quando provo il mio simulatore e lo premo, si passa a uno schermo nero. Come potrei risolvere questo?Commutazione delle viste a livello di codice in Swift

@IBAction func FeelingLuckyPress(sender: UIButton) { 

    let secondViewController:SecondViewController = SecondViewController() 

    self.presentViewController(secondViewController, animated: true, completion: nil) 
} 
+0

Dove si suppone che SecondViewController ottenga la sua 'vista' da? Per dirla in un altro modo, cosa hai fatto in modo che questa vista non dovrebbe essere uno schermo nero? Spiegare. Descrivere. – matt

+0

Ecco i modi in cui un controller di visualizzazione ottiene la sua vista. Se non ne usi uno, la vista del controller di visualizzazione è vuota e nera: http://www.apeth.com/iOSBook/ch19.html#_view_controller_and_view_creation – matt

risposta

20

È possibile aggiungere un segue tra le due scene nel vostro storyboard per il controllo trascinando l'icona View Controller nella parte superiore della prima scena per la seconda scena:

create segue

Puoi quindi selezionare che segue e dargli un identificatore storyboard unico, e allora si può solo eseguire la segue utilizzando tale identificativo:

performSegueWithIdentifier("SegueToSecond", sender: self) 

In alternativa, si può fare qualcosa di simile:

let controller = storyboard?.instantiateViewControllerWithIdentifier("Second") as SecondViewController 
presentViewController(controller, animated: true, completion: nil) 

dove "Seconda" è un identificatore storyboard ho specificato per quella scena destinazione Interface Builder.


A proposito, ci sono alternative se si sta creando la scena di destinazione a livello di codice o utilizzando ONA, ma gli storyboard sono più comuni, così mi sono concentrato su che nei miei esempi sopra riportati.

Problemi correlati