Create RootSplitViewController in code rather than in storyboard.

This commit is contained in:
Brent Simmons
2025-02-02 18:08:13 -08:00
parent 903b0257a8
commit 08f21ca4b2
3 changed files with 30 additions and 7 deletions

View File

@@ -82,12 +82,7 @@ final class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationC
self.window = window
// Create UI and add it to window.
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let rootSplitViewController = storyboard.instantiateInitialViewController() as! RootSplitViewController
rootSplitViewController.presentsWithGesture = true
rootSplitViewController.showsSecondaryOnlyButton = true
rootSplitViewController.preferredDisplayMode = .oneBesideSecondary
let rootSplitViewController = RootSplitViewController()
coordinator = SceneCoordinator(rootSplitViewController: rootSplitViewController)
rootSplitViewController.coordinator = coordinator
rootSplitViewController.delegate = coordinator

View File

@@ -11,8 +11,35 @@ import Account
final class RootSplitViewController: UISplitViewController {
var coordinator: SceneCoordinator!
var coordinator: SceneCoordinator! {
didSet {
sidebarViewController.coordinator = coordinator
timelineViewController.coordinator = coordinator
articleViewController.coordinator = coordinator
}
}
private lazy var sidebarViewController = MainFeedViewController()
private lazy var timelineViewController = TimelineViewController()
private lazy var articleViewController = ArticleViewController()
init() {
super.init(style: .tripleColumn)
setViewController(self.sidebarViewController, for: .primary)
setViewController(self.timelineViewController, for: .supplementary)
setViewController(self.articleViewController, for: .secondary)
self.showsSecondaryOnlyButton = true
self.preferredDisplayMode = .oneBesideSecondary
self.preferredSplitBehavior = .displace
self.primaryBackgroundStyle = .sidebar
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override var prefersStatusBarHidden: Bool {
return coordinator.prefersStatusBarHidden
}