【问题标题】:EnvironmentObject does not work when sheet is presented呈现工作表时 EnvironmentObject 不起作用
【发布时间】:2019-11-30 04:58:09
【问题描述】:

我有一个包含 managedObjectContext(环境变量)的视图。当使用 NavigationLink 在 NavigationView 中呈现时,它可以正常工作。但是当视图显示为工作表时,它不起作用。 当我保存一些实体数据时,它给了我一个错误。

“操作无法完成。(Foundation._GenericObjCError 错误 0.)”

使用 Environment 对象时有什么我遗漏的吗?我的代码

let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext 

@Environment(\.managedObjectContext) var managedObjectContext

【问题讨论】:

    标签: core-data swiftui environment


    【解决方案1】:

    工作表不是ContentView 的子组件。

    因此,您必须将此环境单独传递给工作表:

    .sheet(isPresented: self.$isPresented, content: MySheetView().environment(\.self.moc)
    

    moc 在 View 中定义为:

    @Environment(\.managedObjectContext) var moc
    

    【讨论】:

      猜你喜欢
      • 2014-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多