Dip into UIKit in .onAppear, find the UISplitViewController, and set its preferredDisplayMode.
swift
var body: some Scene {
WindowGroup {
NavigationView {
List(0..10, rowContent: { i in
Text(String(describing: i))
})
.navigationTitle("One")
ListTwo()
VStack {
Text("Panel Three")
}
.navigationTitle("Three")
}.onAppear {
let controller = UIApplication.shared.windows.first { $0.isKeyWindow }!.rootViewController
guard let split = controller?.children[0] as? UISplitViewController else {
print("not a split view")
return
}
split.preferredDisplayMode = .twoBesideSecondary
}
}
}
Topic:
UI Frameworks
SubTopic:
SwiftUI
Tags: