Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SwiftUI在双栏导航中禁用滑出抽屉_Swift_Swiftui_Swiftui Navigationview - Fatal编程技术网

SwiftUI在双栏导航中禁用滑出抽屉

SwiftUI在双栏导航中禁用滑出抽屉,swift,swiftui,swiftui-navigationview,Swift,Swiftui,Swiftui Navigationview,我有一个应用程序,我想总是在iPad上显示分割导航。我想把风景画的行为表现成肖像画。我不想要滑出的行为,因为我认为人们不会自己得到这种行为,在iPad上使用两列导航是有意义的 填充技巧似乎不起作用 编辑:Welp在屏幕录制保存方向模拟器似乎 这是导航页面 struct TasksView: View { @Environment(\.container) var container @Environment(\.verticalSizeClass) var verticalSi

我有一个应用程序,我想总是在iPad上显示分割导航。我想把风景画的行为表现成肖像画。我不想要滑出的行为,因为我认为人们不会自己得到这种行为,在iPad上使用两列导航是有意义的

填充技巧似乎不起作用

编辑:Welp在屏幕录制保存方向模拟器似乎

这是导航页面

struct TasksView: View {
    @Environment(\.container) var container
    @Environment(\.verticalSizeClass) var verticalSizeClass: UserInterfaceSizeClass?
    @Environment(\.horizontalSizeClass) var horizontalSizeClass: UserInterfaceSizeClass?
    
    init() {
        UINavigationBar.appearance().barTintColor = UIColor(named: "background")
        UINavigationBar.appearance().backgroundColor = UIColor(named: "background")
    }
    
    @ViewBuilder
    var body: some View {
        GeometryReader { geo in
            if (verticalSizeClass == .regular && horizontalSizeClass == .regular) {
                NavigationView {
                    InternalTasksView(state: container.getService()!)
                        .navigationBarTitle("Tasks", displayMode: .inline)
                    
                }.navigationViewStyle(DoubleColumnNavigationViewStyle())
                .padding(.leading, 1)
            } else {
                NavigationView {
                    InternalTasksView(state: container.getService()!)
                        .navigationBarTitle("Tasks", displayMode: .inline)
                    
                }.navigationViewStyle(StackNavigationViewStyle())
            }
        }
    }
}

private struct InternalTasksView: View {
    @ObservedObject var state: TasksState
    @Environment(\.verticalSizeClass) var verticalSizeClass: UserInterfaceSizeClass?
    @Environment(\.horizontalSizeClass) var horizontalSizeClass: UserInterfaceSizeClass?
    
    init(state: TasksState) {
        self.state = state
        UINavigationBar.appearance().backgroundColor = .clear
        UITableView.appearance().separatorStyle = .singleLine
        UITableViewCell.appearance().backgroundColor = UIColor(named: "background")
        UITableView.appearance().backgroundColor = UIColor(named: "background")
    }
    
    @ViewBuilder
    var body: some View {
        GeometryReader { geometry in
            VStack {
                if (state.isLoading) {
                    ProgressView()
                        .progressViewStyle(CircularProgressViewStyle())
                } else if (state.tasks.isEmpty){
                    Text("No tasks?")
                    NavigationLink(
                        destination: Text("Hello world").background(Color("background").ignoresSafeArea()),
                        label: {
                            Text("Create one now!")
                                .primaryButtonStyle()
                            
                        })
                        .navigationBarHidden(true)
                        .background(Color("background").ignoresSafeArea(.all))
                } else {
                    List {
                        ForEach(state.tasks, id: \.self) { task in
                            NavigationLink(destination:Text("test")) {
                                HStack {
                                    Text(task.taskName ?? "")
                                    Spacer()
                                    VStack {
                                        Text("\(task.frequency.stringValue)")
                                            .font(.headline)
                                            .foregroundColor(Color("text-primary"))
                                        Text("\(task.timeOfDay?.name ?? "")")
                                            .font(.subheadline)
                                            .foregroundColor(Color("text-secondary"))
                                    }
                                    Spacer()
                                }.padding()
                            }
                        }.listRowBackground(Color("background"))
                    }
                }
                
                Spacer()
            }.padding()
            .frame(maxWidth: .infinity)
            .background(Color("background").ignoresSafeArea(.all))
        }
    }
}