从另一个视图控制器访问核心数据实体并添加其他属性

时间:2017-01-02 01:04:35

标签: ios swift entity-framework core-data attributes

是否有一种简单的方法可以访问我创建的核心数据实体并从另一个视图控制器存储?

目前我有一个Map视图控制器,它有一个包含各种位置和相关详细信息的地图,其中实体Places获取其属性,例如名称,地址等。这些对象正在Map视图控制器中创建,存储和获取。现在我想将这些信息传递给表视图控制器,我希望在表格形式中表示实体属性(比如说名称),然后从其他视图控制器添加更多属性。举个例子,假设我的地图中有一个名为home的位置,带有xxxxxx地址。然后我想在我的tableview及其相关属性中查看home并添加我家的照片。有没有办法从这些其他视图控制器轻松访问核心数据?并从新视图控制器创建属性以添加到实体?

1 个答案:

答案 0 :(得分:0)

将您的项目传递到第二个视图控制器。您可以手动传递商品或覆盖prepare(for: sender:)

来执行此操作
let viewController = secondViewController //instantiate it from the Storyboard or however else you want
viewController.items = items //items is an array containing your items
present(viewController, animated: true)

如果您使用的是segues:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    guard let destination = segue.destinationViewController as? MyViewController else { return }
    destination.items = items //items is an array containing your items
}

在这两种情况下,请记住将上述代码放在第一个视图控制器中。