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

Can't pass data to another view controller in when preparing for segue

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

您拥有的名为 ViewController 的 class 需要有一个名为数据的 public 变量。

您的 ViewController class 可能看起来像这样:

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"
}

错误信息非常丰富。它说 class ViewController 没有 public 或称为 data 的内部 属性。您必须在 class ViewController.

中声明一个名为 data 的 属性
class ViewController: UIViewController {

  var data: String?

}

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