从ViewController传递数据

时间:2016-10-26 22:19:56

标签: textview segue swift3

我已经设置了一个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
                }
            }
        }

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

您的目标ViewController的视图在准备时尚未实例化,因此未发生IBOutlet绑定。

在这种情况下,如果将destinationVC.reflectionTextBox定义为@IBOutlet weak var reflectionTextBox: UITextView!,则!可选解包尝试将引用返回到reflectionTextBox时尚未发生崩溃界。 prepareSegue应该用于将数据传递到目标视图控制器,然后目标视图控制器可以在其viewDidLoad函数中查找这些参数,以便在任何UI组件中使用它们。