Я использую навигационное представление в моем приложении SwiftUI Ma c OSX. У меня есть представление списка, чтобы выбрать людей, а затем отобразить их атрибуты в PersonDetail. Работает нормально. Тем не менее, я отправляю состояние для привязки в PersonDetail View
.
Это работает нормально, однако каждый раз, когда нажимается новая строка, я хочу сбросить свое состояние s_selectedView
на 0
снова.
Есть ли событие для обновлений NavigationView? Я попытался использовать событие onAppear()
в моем представлении PersonDetail, однако оно вызывается только один раз. Единственный вариант, который я вижу, это подтолкнуть мое состояние к моему List
, а затем изменить его на tapGesture
представления таблицы.
Это мой код навигационного представления:
NavigationView {
PersonList(selectedPerson: $selectedPerson)
if selectedPerson != nil {
PersonDetail(person: selectedPerson!, s_currentView: self.$s_selectedView)
//Here I would need a event, for appear / update
//.onAppear
//{
//only called once
//}
}
}
Это моя привязка в том же представлении выше:
@State var s_selectedView : Int = 0
Я хочу сбросить эту переменную на 0 всякий раз, когда новый элемент был нажат в списке.
TL: DR
Существует ли эквивалентная функция, такая как onAppear
только для update
для состояния? Проблема в том, что мое представление больше не появляется (onAppear
не вызывается), только данные меняются из-за события @State
. Как я могу поймать это событие?