在 segue 之后填充 textfield.text

Populate textfield.text after segue

我有一个表演型转场。我希望 destinationViewController nameTextField 在执行 segue 时在其中包含一些文本。我尝试这样做:

override func prepare (for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "ToEditScreen" {
     
        let svc = segue.destination as! EditViewController
        svc.nameTextField.text = cars[selectedIndex!].name //crashes
        svc.nameString = cars[selectedIndex!].name
        }
    }

我得到的错误是:在隐式展开可选值时意外发现 nil。
我知道 cars[selectedIndex!].name 不是零。
如果我删除文本字段行,一切都很好,nameString 确实得到了等于 cars[selectedIndex!].name 的值。我知道我能做到:

nameTextField.text = randomString

但这似乎是一个额外的步骤。我可以从原始 ViewController 填充 textfield.text 吗?

您可以将字符串变量添加到目标 vc 并在那里设置或

let svc = segue.destination as! EditViewController
svc.loadViewIfNeeded() // add this line
svc.nameTextField.text = cars[selectedIndex!].name