我如何在swiftui中从我的应用程序中的任何视图访问这个:@Environment(\.managedObjectContext) var context? [关闭]

Posted

技术标签:

【中文标题】我如何在swiftui中从我的应用程序中的任何视图访问这个:@Environment(\\.managedObjectContext) var context? [关闭]【英文标题】:How do i access this: @Environment(\.managedObjectContext) var context from any view in my app, in swiftui? [closed]我如何在swiftui中从我的应用程序中的任何视图访问这个:@Environment(\.managedObjectContext) var context? [关闭] 【发布时间】:2020-03-22 15:49:05 【问题描述】:

我只能在我的 ContentView() 中访问和使用此“@Environment(.managedObjectContext) var context”,如果我尝试在任何其他视图中访问“@Environment(.managedObjectContext) var context”,我会收到此错误: "环境中的上下文未连接到持久存储协调器:"

如何从我的应用中的任何视图访问它?

【问题讨论】:

【参考方案1】:

你需要在你的 scenedelegate.swift 中

 // Create the SwiftUI view and set the context as the value for the managedObjectContext environment keyPath.
    // Add `@Environment(\.managedObjectContext)` in the views that will need the context.
    let contentView = ContentView().environment(\.managedObjectContext, context)

在每个视图中

  @Environment(\.managedObjectContext) var context

然后您可以访问每个视图中的上下文。

或查看此链接https://www.hackingwithswift.com/books/ios-swiftui/how-to-combine-core-data-and-swiftui

【讨论】:

我已经做到了,我只能访问子视图中的上下文,例如,如果我在 ContentView 中有一个 SomeView(),那么我可以访问它。但是,如果我尝试在不在 ContentView() 内的某个视图中访问它,我将无法访问它

以上是关于我如何在swiftui中从我的应用程序中的任何视图访问这个:@Environment(\.managedObjectContext) var context? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SwiftUI 中启动应用程序时有条件地加载视图?

将变量从 UIHostingController 传递到 SWIFTUI 视图

在 SwiftUI 中从 UIViewController 调用函数

如何在swiftUI的父视图中从另一个视图访问变量?

SwiftUI - 如何在我的视图中调用函数?

如何在 aws 中从我的 mac 设置和登录 ***?