Swiftui presentationMode закрывается при перерисовке иерархии - PullRequest
0 голосов
/ 22 февраля 2020

Я работаю над страницей редактирования продукта, которая на root имеет модель как состояние и передает ее на подстраницу в качестве привязок.

На странице редактирования у меня есть операторы 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 голосов
/ 22 февраля 2020

Это было связано с тем, что я заменял всю иерархию представлений. Мой Плохой

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...