swiftUI中的NavigationSplitView:更改选择后的NavigationSplitView可见性

rqdpfwrv  于 2023-09-30  发布在  Swift
关注(0)|答案(1)|浏览(131)

我有一个通过NavigationSplitView实现的侧栏。一旦应用程序是第一次启动我有设置

NavigationSplitViewVisibility.detailOnly

该应用程序的主要内容在NavigationSplitViewdetail部分的VStack中。
然后用户单击侧栏切换按钮并选择菜单中的项。
然后更新detail部分。
然而,侧边栏保持开放。
有没有办法变回

NavigationSplitViewVisibility.detailOnly

在用户选择了一个项目之后?

struct ContentView: View {

    @State private var showDetailsOnly = NavigationSplitViewVisibility.detailOnly
    

    var body: some View {
        HStack {

            NavigationSplitView(columnVisibility: $showDetailsOnly) {
                ...list of items...
            }
            detail: {
                VStack {
                       ...main content, depending on the selected item...
                    
                }
            }
                
        }
    }
}
sc4hvdpw

sc4hvdpw1#

试试这个:

NavigationSplitView(columnVisibility: $columnVisibility) {
   List(selection: $selection) {
       //List content
   }
} detail: {
   //Detal view
}
.onChange(of: selection) {_ in
   columnVisibility = .detailOnly
}

相关问题