SplitTabBar
A UISplitViewController
combined with a UITabBarController
in sync
Usage
import SplitTabBar
let splitTabBar = SplitTabBarViewController(viewControllers: [/*view controllers here*/])
The navigatable view controllers are controlled via the tab bar detail view controller. You can modify them like so:
splitTabBar.setViewControllers([/*your new view controllers */])
// or
splitTabBar.detailTabBar.viewControllers = [/*your new view controllers */]
If you want the UITabBarController
tabs to always be present you can enable them via
splitTabBar.shouldHideTabBar = false
You can see an example of showing both the UISplitViewController
navigation and the UITabBarController
tabs in the macOS screenshots above.
By default the SplitTabBarViewController
will hide the UISplitViewController
and just display the UITabBarController
when its traitCollection
horizontalSizeClass
is compact
. You can change this behavior using the following properties:
splitTabBar.compactPreferredDisplayMode = UISplitViewController.DisplayMode.primaryHidden
splitTabBar.regularPreferredDisplayMode = UISplitViewController.DisplayMode.automatic