SwiftUI NavigationSplitView — сброс подробного представления при изменении выбора боковой панели
В iOS 16 у меня есть представление Sidebar-Content-Detail с тремя столбцами. Когда выбор боковой панели изменяется, я хотел бы обновить (очистить) подробное представление.
var body: some View {
NavigationSplitView {
List(Content.allCases, selection: $selectedContent) { content in
NavigationLink(content.localizedName, value: content)
}
.navigationTitle("Sidebar")
} content: {
List(
dataModel.details(in: selectedContent),
selection: $selectedDetail)
{ detail in
NavigationLink(detail.name, value: detail)
}
.navigationTitle(selectedContent?.localizedName ?? "")
} detail: {
MyDetail(recipe: selectedDetail)
}
}
Я предполагаю, что при изменении боковой панели мне нужно будет установитьselectedDetail
до нуля. Но как зафиксировать изменение боковой панели?
1 ответ
Вы должны иметь возможность добавить.onChange
модификатор:
.onChange(of: selectedContent) { _ in
selectedDetail = nil
}