prepareForSegue不会在Swift 4

时间:2017-11-07 22:49:16

标签: ios swift

我试图通过prepareForSegue将文本从视图控制器中的文本字段传递到第二个视图控制器中的标签,但它无效。

到目前为止我的代码:

class ViewController: UIViewController {
    @IBOutlet weak var inputTextField: UITextField!

    // use of override func prepare gives an error
    func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

        var DestViewController: secondViewController = segue.destination as! secondViewController
        DestViewController.labelText = inputTextField.text!
    }
}

class SecondViewController: UIViewController {
    @IBOutlet weak var receivedTextLabel: UILabel!

    var labelText = "ss"

    override func viewDidLoad() {
        super.viewDidLoad()

        receivedTextLabel.text! = labelText
    }
}

如果我对override使用prepareForSegue,则会收到以下错误:

  

方法不会覆盖它的超类

中的任何方法

没有覆盖,它会构建,但在从按钮执行segue到SecondViewController后,标签的文本不会更新。

1 个答案:

答案 0 :(得分:4)

该方法在Swift 3中从prepareForSegue(segue:sender)更改为prepare(for:sender:)。将其替换为以下内容:

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