我如何在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? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
将变量从 UIHostingController 传递到 SWIFTUI 视图