重新绘制层次结构时,将关闭Swiftui PresentationMode

时间:2020-02-22 08:47:22

标签: swiftui

我正在一个编辑产品页面上工作,该页面的根目录具有该模型作为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并返回到内容视图。

enter image description here

1 个答案:

答案 0 :(得分:0)

这是由于我要替换整个视图层次结构。我的坏人