在 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
我有一个表演型转场。我希望 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