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

@ -291,6 +291,7 @@
8498E53C2D27A766009F5438 /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = {
isa = PBXFileSystemSynchronizedBuildFileExceptionSet;
membershipExceptions = (
/Localized/MainWindow/Main.storyboard,
/Localized/ShareExtension/MainInterface.storyboard,
IntentsExtension/Info.plist,
IntentsExtension/IntentHandler.swift,

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
}