我正在一个编辑产品页面上工作,该页面的根目录具有该模型作为State的状态,并将其作为绑定传递给子页面。
在编辑页面中,我是否有if语句显示选择器或文本,具体取决于是否设置了一个属性。
问题是,如果我在子页面之一中更新模型,则在重新绘制层次结构时会调用presentatonMode.dismiss()。
示例代码:
struct A: View {
@Binding var s: Bool
var body: some View {
NavigationLink(destination: AA(s: self.$s)) {
Text("A")
}
}
}
struct AA: View {
@Binding var s: Bool
var body: some View {
VStack {
Text(s.description)
Button(action: {
self.s.toggle()
}) {
Text("toggle")
}
}
}
}
struct B: View {
var body: some View {
Text("B")
}
}
struct ContentView: View {
@State var s: Bool = true
var body: some View {
NavigationView {
VStack {
if s == true {
A(s: self.$s)
} else {
B()
}
}
}
}
}
如在这里看到的,在AA子页面中,我只想更新状态并显示它,而不想调用dismiss并返回到内容视图。
答案 0 :(得分:0)
这是由于我要替换整个视图层次结构。我的坏人