【发布时间】:2020-06-12 10:07:55
【问题描述】:
我在我的 SwiftUI Mac OSX 应用程序中使用导航视图。我有一个列表视图来选择人员,然后在 PersonDetail 中显示他们的属性。它工作正常。但是,我将状态发送到PersonDetail View 中的绑定。
这工作正常,但是每次单击新行时,我想再次将我的状态 s_selectedView 重置为 0。
是否有 NavigationView 更新的事件?我尝试在我的 PersonDetail 视图中使用 onAppear() 事件,但是这只调用了一次。我看到的唯一选择是将我的状态推向我的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 事件而发生变化。我怎样才能捕捉到那个事件?
【问题讨论】:
标签: swift xcode macos list swiftui