如何防止DoubleColumnNavigationView在ipad下折叠

问题描述 投票:0回答:2
struct NavigationViewPadTest: View {

    var body: some View {
        NavigationView{
            List(0..<30){ i in
                Text("id:\(i)")
            }
            Text("abc")
            
        }
        .navigationViewStyle(DoubleColumnNavigationViewStyle())
    }
}

使用上面的代码创建一个导航视图,在屏幕左上角有一个可折叠按钮。我不希望 navigationView 折叠并保持 DoubleColumn 状态。有没有办法禁用这个按钮。

谢谢

swiftui navigationview
2个回答
3
投票

可能的解决方案是删除栏

var body: some View {
    NavigationView{
        List(0..<30){ i in
            Text("id:\(i)")
        }
        .navigationBarHidden(true)    // << here !!

        Text("abc")
    }
    .navigationViewStyle(DoubleColumnNavigationViewStyle())
}

0
投票

我一直在寻找类似的解决方案。

DoubleColumnNavigationViewStyle
已弃用。现在您可以使用
NavigationSplitView
。如果你想防止
NavigationSplitView
在iPad下折叠,可以试试这个:

struct ContentView: View {
    
    @State private var columnVisibility =
    NavigationSplitViewVisibility.doubleColumn
    
    var body: some View {
        NavigationSplitView(columnVisibility: $columnVisibility){
            List(0..<30){ i in
                NavigationLink(destination: Text("Details of \(i)")) {
                    Text("id:\(i)")
                }

            } .navigationBarHidden(true)

        } detail: {
            Text("Choose an item from the content")
            
        }
        .navigationSplitViewStyle(.balanced) // this
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.