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

标签 swift xcode segue unwind-segue

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

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)



    }

}

和:(准备放松)

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)



        }

    }

最佳答案

它们都是相同的方法。无论参数名称是unwind还是segue,选择器都是prepare(for:sender:)

如果您尝试在同一个类中实现它们,您将收到错误:invalid redeclaration of 'prepare(for:sender:)' with the second one。

我建议使用 prepare(for segue: UIStoryboardSegue, sender: Any?) 因为 1) 这就是自动完成的建议,以及 2) 所有的 segues 都会经过那里,而不仅仅是展开的。因此将参数称为 segue 是有意义的。

关于swift - Prepare For Segue 和 Prepare for Unwind 之间的区别 - Swift 3.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40073603/

相关文章:

iOS/Swift/CoreBluetooth Ble 通知不工作

objective-c - CoreML 使用 AVCaptureSession 返回不同的值

ios - 从 subview UIViewcontroller 到其他 UIViewController

ios - 如何为 ViewController segues 设置 if else 语句?

swift - NSURLSession 与 Alamofire 的并发请求

ios - AnyObject 到阵列?

ios - 当全局变量的值改变时触发一个方法?

ios - Xcode 6 测试版 3 : Simulator Issue

swift - AVFoundation PDF417 扫描仪并不总是有效

ios - 如何从 Firebase 检索数据,将其设置为全局变量,然后将其传递给下一个 View Controller ?