ios - 如何使用 SwiftUI 将 CoreData Context 传递给在 Swift 5 中以表格形式呈现的新视图?
问题描述
我目前正在开发一个SwiftUI
使用CoreData
.
应用程序文件中的这个自动生成的代码允许我在内容视图中使用上下文:
let persistenceController = PersistenceController.shared
ContentView()
.environment(\.managedObjectContext, persistenceController.container.viewContext)
但是,在我的 ContentView 中,我使用 .sheet() 修饰符来创建模态视图,据我所知,这是一个不同的环境。因此我无法访问上下文。
我的问题:是否有任何解决方案可以将上下文传递给新环境,或者我是否必须在模态视图中创建对上下文的新引用?
struct ModalView: View {
let context = PersistenceController.shared.container.viewContext
...
}
谢谢你的帮助。
解决方案
你可以像你一样注入它,在ContentView
下面找到一个演示
struct ContentView: View {
@Environment(\.managedObjectContext) var moc
var body: some View {
...
.sheet(...) {
ModalView()
.environment(\.managedObjectContext, moc) // << here !!
}
}
}
struct ModalView: View {
@Environment(\.managedObjectContext) var moc
// .. other code
}
推荐阅读
- javascript - 在 redux 中调用多个 action 会重置之前的 action 状态
- python - 当我按下回车键时禁用自动完成功能
- vue.js - Nuxtjs 加载之前的内容
- javascript - 在 js.erb 文件中的 ruby 代码中包含一个 javascript 变量
- python - 使用 BeautifulSoup 查找特定类的第二个实例
- neo4j - 删除和更新 neo4j 节点的属性
- sql-server - 在存储过程中将参数传递给 openquery
- android - 与朋友分享 AOSP 输出
- php - WooCommerce 结帐无休止加载空 AJAX 响应
- python - 如何在我的博客网站顶部显示最新帖子和评论?