2016-10-16 7 views
0

Was sind die Unterschiede zwischen vorbereiten für segue und vorbereiten für die Abwicklung? Ich habe beide in Xcode-Projekt implementiert und sie beide mit dem gleichen Ergebnis herauskommen. Der Code, den ich habe beide Funktionen implementiert sind: (mit für Abroll vorbereiten)Unterschied zwischen Vorbereiten für Segue und Bereiten Sie sich auf Abwickeln vor - Swift 3.0

override func prepare(for unwind: UIStoryboardSegue, sender: Any?) { 

    let variableUnwind = ("StackOverFlow") 

    if unwind.identifier == "toFirstViewController" { 

     let hello = unwind.destination as! ViewController 

     hello.username = textField.text! 

     print(hello.username) 



    } 

} 

und: (mit Vorbereitung für Abwickler)

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 

     let variableUnwind = ("StackOverFlow") 

     if segue.identifier == "toFirstViewController" { 

      let hello = segue.destination as! ViewController 

      hello.username = textField.text! 

      print(hello.username) 



     } 

    } 

Antwort

3

Sie sind beide die gleiche Methode. Es spielt keine Rolle, ob der Parametername unwind oder segue lautet, der Selektor ist prepare(for:sender:).

Wenn Sie versuchen, beide in der gleichen Klasse zu implementieren, erhalten Sie den Fehler: ungültige Neudeklaration von 'vorbereiten (für: Absender :)' mit dem zweiten.

Ich würde vorschlagen, prepare(for segue: UIStoryboardSegue, sender: Any?) zu verwenden, weil 1) Das ist, was Autocomplete suggeriert, und 2) Alle Übergänge werden dort durchgehen, nicht nur Unwinding. Daher ist es sinnvoll, dass der Parameter segue heißt.

+0

Danke. Also nur um zu verdeutlichen, dass es keinen Unterschied und keinen Nutzen gibt, einen zu wählen? –

+1

Danke noch einmal. Ich werde meinen Code dahingehend ändern. :-) –

Verwandte Themen