我已经设置了一个segue到另一个控制器,我试图将一些文本从textView传递给新的控制器。当我运行该程序时,我不断收到错误:"在展开可选值时,意外地发现nil"
我知道我传递的价值不是零...请参阅下面的我的segue代码
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "getReflection" {
if let destinationVC = segue.destination as? ReflectionViewController {
destinationVC.reflectionTextBox.text = self.reflectionTextBox.text
//Crashes on the above expression???
destinationVC.delegate = self
}
}
}
任何帮助将不胜感激!
答案 0 :(得分:0)
您的目标ViewController的视图在准备时尚未实例化,因此未发生IBOutlet绑定。
在这种情况下,如果将destinationVC.reflectionTextBox
定义为@IBOutlet weak var reflectionTextBox: UITextView!
,则!
可选解包尝试将引用返回到reflectionTextBox
时尚未发生崩溃界。 prepareSegue
应该用于将数据传递到目标视图控制器,然后目标视图控制器可以在其viewDidLoad
函数中查找这些参数,以便在任何UI组件中使用它们。