3

在 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% 的时间可以工作,但并不理想。我只是希望这是一个错误而不是设计更改。难道我做错了什么?有没有其他人有类似的问题?

4

0 回答 0