同步 sectionViewController 和 compactController 当前显示页面

This commit is contained in:
Fin 2024-09-02 16:19:07 +08:00 committed by Feng
parent 4004c8890a
commit 648ff72ab8
2 changed files with 20 additions and 1 deletions

View File

@ -79,7 +79,6 @@ class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterD
IQKeyboardManager.shared.enable = true
if #available(iOS 14, *), UIDevice.current.userInterfaceIdiom == .pad {
let splitViewController = BarkSplitViewController(style: .doubleColumn)
splitViewController.initViewControllers()
self.window?.rootViewController = BarkSnackbarController(rootViewController: splitViewController)
} else {
let tabBarController = BarkTabBarController()

View File

@ -18,6 +18,8 @@ class BarkSplitViewController: UISplitViewController {
super.viewDidLoad()
self.preferredDisplayMode = .oneBesideSecondary
self.preferredSplitBehavior = .tile
self.delegate = self
initViewControllers()
}
func initViewControllers() {
@ -28,3 +30,21 @@ class BarkSplitViewController: UISplitViewController {
self.setViewController(compactController, for: .compact)
}
}
@available(iOS 14, *)
extension BarkSplitViewController: UISplitViewControllerDelegate {
// sectionViewController compactController
func splitViewControllerDidCollapse(_ svc: UISplitViewController) {
guard let index: Int = Settings[.selectedViewControllerIndex] else {
return
}
self.compactController.selectedIndex = index
}
func splitViewControllerDidExpand(_ svc: UISplitViewController) {
guard let index: Int = Settings[.selectedViewControllerIndex] else {
return
}
self.sectionViewController.tableView.selectRow(at: IndexPath(row: index, section: 0), animated: false, scrollPosition: .none)
}
}