2017-08-20 4 views
0

Ich möchte eine Variable von einem View-Controller an einen anderen übergeben. Der erste View-Controller sieht so aus und das Segment wird korrekt ausgelöst und der neue View-Controller wird angezeigt.Variable zum nächsten View-Controller übergeben

@IBAction func testButton(_ sender: Any) { 

    let timerVC = TimerViewController() 

    timerVC.secondsPassed = textfield_seconds.text! 

    navigationController?.pushViewController(timerVC, animated: true) 

} 

Auf der nächsten View Controller (TimerViewController) erklärte ich eine Variable in der Klasse Header

var secondsPassed:String! 

und in viewDidLoad Ich will nur den Wert auf die Konsole drucken und alles, was ich bekommen ist ein ' Null'.

Ich schaute durch verschiedene Tutorials, aber ich finde nicht die richtige Antwort dafür zu finden, damit es funktioniert.

Jeder mit einem Hinweis?

Vielen Dank im Voraus ...

+0

haben Sie eine segue müssen die Schaltfläche verbunden? In diesem Fall glaube ich nicht, dass die "IBAction" tatsächlich ausgeführt wird. Sie sollten das Segment entfernen, da Sie bereits 'pushViewController' aufrufen. – Sweeper

+0

Ja, da war ein Segment verbunden. Ich habe es entfernt, aber jetzt passiert nichts. Es wird kein neuer View-Controller angezeigt und nur die Schaltfläche zeigt an, dass sie gedrückt wurde. Ich bin immer noch verwirrt. Wie kann etwas so einfach so schwer sein o_O? – boehmatron

+0

Ah, dann haben Sie keinen UINavigationController eingebettet, oder? eine Antwort jetzt posten. – Sweeper

Antwort

1

Wenn Sie bereits ein Segue verwenden, können Sie diese Zeile entfernen, die den Controller präsentiert (Sie scheinen keine navigationController sowieso haben):

navigationController?.pushViewController(timerVC, animated: true) 

Nun ist die richtige Art und Weise Daten an eine andere VC mit segues zu passieren, ist dies:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    if let vc = segue.destination as? TimerViewController { 
     vc.secondsPassed = textfield_seconds.text! 
    } 
} 
Verwandte Themen