У меня есть простое представление (родительское представление) со следующим 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