- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不太明白使用模态时环境是如何工作的。看起来环境是与模态视图分开的。
我使用核心数据制作了一个快速示例,并将对象保存到核心数据。如果我不通过环境,则不会保存对象,并且在尝试保存对象时出现以下错误:操作无法完成。 (Foundation._GenericObjCError 错误 0。)
如果我在模式环境中传递托管对象上下文,它就可以工作。我注释掉了使它起作用的行。
谁能解释一下为什么会发生这种情况吗?
@FetchRequest(fetchRequest: ToDoItem.fetchAllItems()) var items
@Environment(\.managedObjectContext) var managedObjectContext
@State var showAddModal = false
var body: some View {
VStack {
List(items, id: \.name) { item in
Text(item.name)
}
Button(action: {
self.showAddModal.toggle()
}) {
Text("Add item")
}.sheet(isPresented: $showAddModal) {
ModalView()
// .environment(\.managedObjectContext, self.managedObjectContext)
// It works if the managed object context is passed in the modal's environment
}
}
}
}
struct ModalView: View {
@State var toDoItemName: String = ""
@Environment(\.presentationMode) var presentationMode
@Environment(\.managedObjectContext) var managedObjectContext
var body: some View {
VStack {
TextField("Item name", text: $toDoItemName)
Button(action: {
let toDoItem = ToDoItem(context: self.managedObjectContext)
toDoItem.name = self.toDoItemName
do {
try self.managedObjectContext.save()
} catch {
print(error.localizedDescription)
}
self.presentationMode.wrappedValue.dismiss()
}) {
Text("Add")
}
}
}
}```
最佳答案
它应该自动通过,但没有。
"if view A presents view B as a sheet then they don’t automatically share environment data, and we need to send it in by hand. Apple has described this sheet situation as a bug that they want to fix, so I’m hopeful this will change in a future update to SwiftUI." - Paul Hudson - Hacking With Swift
我不知道他的消息来源,但他平时似乎知道自己在说什么。
关于ios - SwiftUI 模态环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58240409/
我来自 Asp.Net 世界,试图理解 Angular State 的含义。 什么是 Angular 状态?它类似于Asp.Net中的ascx组件吗?是子页面吗?它类似于工作流程状态吗? 我听到很多人
我一直在寻找 3 态拨动开关,但运气不佳。 基本上我需要一个具有以下状态的开关: |开 |不适用 |关 | slider 默认从中间开始,一旦用户向左或向右滑动,就无法回到N/A(未回答)状态。 有人
我是一名优秀的程序员,十分优秀!