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