diff --git a/Tusker/Screens/Main/MainSplitViewController.swift b/Tusker/Screens/Main/MainSplitViewController.swift index 0926867a..e580bd53 100644 --- a/Tusker/Screens/Main/MainSplitViewController.swift +++ b/Tusker/Screens/Main/MainSplitViewController.swift @@ -24,6 +24,15 @@ class MainSplitViewController: UISplitViewController { viewController(for: .secondary) as? SplitNavigationController } + private var sidebarVisibile: Bool { + get { + (UserDefaults.standard.object(forKey: "MainSplitViewControllerSidebarVisible") as? Bool) ?? true + } + set { + UserDefaults.standard.set(newValue, forKey: "MainSplitViewControllerSidebarVisible") + } + } + init(mastodonController: MastodonController) { self.mastodonController = mastodonController @@ -45,6 +54,11 @@ class MainSplitViewController: UISplitViewController { sidebar.sidebarDelegate = self setViewController(sidebar, for: .primary) primaryBackgroundStyle = .sidebar + if sidebarVisibile { + show(.primary) + } else { + hide(.primary) + } let splitNav = SplitNavigationController() setViewController(splitNav, for: .secondary) @@ -355,6 +369,18 @@ extension MainSplitViewController: UISplitViewControllerDelegate { return } } + + func splitViewController(_ svc: UISplitViewController, willHide column: UISplitViewController.Column) { + if column == .primary { + sidebarVisibile = false + } + } + + func splitViewController(_ svc: UISplitViewController, willShow column: UISplitViewController.Column) { + if column == .primary { + sidebarVisibile = true + } + } } extension MainSplitViewController: MainSidebarViewControllerDelegate {