Automate Your Builds and Testing with Bitrise

It's all about Tab's

December 31, 2019 · 2 min read

I have been trying to add a settings panel to my MetaMaker macOS application, everything I tried always opened a new window rather than replacing the current window content.

It turns out that I needed to think different. Thanks to a member of the iOS Folks Slack channel, they pointed me to using tabbed based content without a tab navigator.

This allows me to switch content tabs in code, but without the need to show a tab navigation bar. This was a huge shift in my thinking and greatly appreciated.

In the screenshot below I have highlighted the tab section in red and each tab in Green.

To switch between the tabs in code, I created two simple functions that use the tab index to identify which I want displayed.

    // MARK: Menu Items
    @IBAction func showSettingsWindow(_ sender: Any) {
        tabContainer.selectTabViewItem(at: 1)

    @IBAction func showPostCreatorWindow(_ sender: Any) {
        tabContainer.selectTabViewItem(at: 0)

With that all in place, it just works rather nicely.

Peter Witham

Web and Mobile Software Maker, Photographer and Podcaster. I live and breath creativity.
I'd love for you to connect with me via Twitter or if you are a photo person like myself, Instagram.