У меня есть простое представление (родительское представление) со следующим NavigationLink:
NavigationLink(
destination: QuizScreen(quizPack: self.quizPack, isQuizPackOpen: $isQuizPackOpen),
isActive: $isQuizPackOpen,
label: {
Text("Open")
.font(.custom("Lato-Bold", size: 17))
.foregroundColor(Color("colorAccent"))
}
)
И дочернее представление закрывается, просто устанавливая параметр привязки isQuizPackOpen на false.
Используя отладчик, я заметил, что когда я закрываю дочернее представление, родительское представление не обновляется, как если бы я менял простую переменную @State.
Можно ли обновить родительское представление после того, как для параметра isQuizPackOpen будет установлено значение false дочерним представлением?
это должно сработать, пожалуйста, добавьте еще контекст — person Gabriele Feudo schedule 26.12.2020
вы можете просто поиграть на onAppear, отметьте if !isQuizPackOpen, чтобы обновить значения (State — ObservableObject) вашего родительского представления — person Gabriele Feudo schedule 26.12.2020
Использование onAppear
И если вам нужно обновить его только в некоторых условиях, передайте другую переменную
@Stateв свойQuizScreenи проверьте ее вместоif !isQuizPackOpenЭто решение отлично работает — person Gabriele Feudo; 27.12.2020