Prepare For Segue 和 Prepare for Unwind 之间的区别 - Swift 3.0

Difference Between Prepare For Segue And Prepare for Unwind - Swift 3.0

prepare for segue 和 prepare for unwind 有什么区别?我已经将这两个实现到 Xcode 项目中,它们都得到了相同的结果。我实现这两个功能的代码是:(with prepare for unwind)

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

    let variableUnwind = ("Whosebug")

    if unwind.identifier == "toFirstViewController"  {

        let hello = unwind.destination as! ViewController

        hello.username = textField.text!

        print(hello.username)



    }

}

和:(准备平仓)

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

        let variableUnwind = ("Whosebug")

        if segue.identifier == "toFirstViewController"  {

            let hello = segue.destination as! ViewController

            hello.username = textField.text!

            print(hello.username)



        }

    }

它们都是同一种方法。不管参数名是unwind还是segue,选择器都是prepare(for:sender:).

如果您尝试在同一个 class 中实现它们,您将收到错误:无效重新声明 'prepare(for:sender:)' 与第二个。

我建议使用 prepare(for segue: UIStoryboardSegue, sender: Any?),因为 1) 这就是自动完成建议的内容,以及 2) 所有转场都会经过那里,而不仅仅是展开的转场。所以调用参数 segue.

是有意义的