Я работаю над страницей редактирования продукта, которая на 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 и не возвращаться к просмотру содержимого.
