在准备segue时,无法将数据传递给另一个视图控制器

时间:2016-05-30 10:35:39

标签: ios swift uiviewcontroller uistoryboardsegue

我正在尝试将对象传递给另一个视图控制器但是当我尝试设置视图控制器对象的属性时出现错误。

error_xcode

3 个答案:

答案 0 :(得分:3)

该错误非常有用。它说类ViewController没有名为data的公共或内部属性。您必须在类data中声明一个名为ViewController的属性。

class ViewController: UIViewController {

  var data: String?

}

答案 1 :(得分:2)

您拥有的名为ViewController的类需要有一个名为data的公共变量。

您的ViewController课程可能如下所示:

class ViewController: UIViewController {

    // This is your public accessible variable you can set during a seque
    var data: String?

    override func loadView() {
        super.loadView()
        print(self.data)
    }

}

此外,您的prepareForSegue功能可以像这样简化

if let displayTodoVC = segue.destinationViewController as? ViewController {
    displayTodoVC.data = "Hello World"
}

答案 2 :(得分:2)

ViewController显然缺少名为data的字符串变量。

class ViewController : UIViewController {

    var data: String? // Make sure you have this defined in your view controller.
}

我还建议您在prepareForSegue中使用destinationViewController的条件展开。

prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

    if let viewController = segue.destinationViewController as? ViewController {

        viewController.data = "Hello World"
    }
}

对于将来的帖子,请不要发布代码图片。您应该在问题中包含代码作为文本。

快乐编码:)

The Basics