在 iOS 13 上,我曾经使用可选@State
属性来调整视图。在我的例子中,如果传入的状态为 nil,则呈现的视图将创建一个新对象(赋值),或者如果传入了赋值,则编辑赋值。这将在 Button 的操作块中完成它工作得很好。
在 iOS 14 / Xcode 12 上,这似乎不再起作用。给定以下代码,当用户点击“New Assignment”按钮时,它创建一个新分配并将其传递到编辑器视图中,值assignment
保持为零。有没有其他人遇到过类似的行为?
struct ContentView: View {
@Environment(\.managedObjectContext) var context
@State var assignmentEditorIsPresented = false
@State var assignment: Assignment? = nil
var Body: some View {
[...]
Button("New Assignment", action: {
self.assignment = Assignment(context: context)
self.assignmentEditorIsPresented = true
})
.sheet(isPresented: assignmentEditorIsPresented) {
[...]
}
}
}
我完全不知所措。自 beta 1 以来,这对我来说一直是一个问题,并且一直存在到当前的 beta 3。作为一种解决方法,我一直在隐藏的文本视图中显示对象的描述,从而解决了这个问题:
Text("\(assignment?.description ?? "")")
.hidden()
它似乎有 50% 的时间可以工作,但并不理想。我只是希望这是一个错误而不是设计更改。难道我做错了什么?有没有其他人有类似的问题?