Customizing Toolbar and Navigation Bar in SwiftUI

Spread the love

The Toolbar API has been accessible for a substantial interval, having been launched with the discharge of iOS 14. It was a invaluable addition to the SwiftUI framework, enabling builders to include menu objects within the navigation and backside bars. In iOS 16, Apple unveiled further modifiers to additional improve the customization of toolbars and supply builders with larger management over their look.

On this tutorial, let me present you easy methods to work with toolbars and handle its customizations.

Utilizing the Toolbar Modifier to Populate Navigation Bar Gadgets

Whether or not it’s worthwhile to populate objects in navigation bars or toolbars, you possibly can make the most of the .toolbar modifier to attain this goal. Right here is an instance:

Contained in the closure of toolbar, we create a pair of ordinary buttons utilizing system pictures. With out explicitly specifying the location of the buttons, SwiftUI routinely positions them within the top-right nook of the navigation bar.


Utilizing ToolbarItem

If it’s worthwhile to add extra objects to the navigation bar, you possibly can proceed so as to add buttons within the toolbar closure. Nonetheless, if you wish to management the location of the objects, you possibly can present a set of views with every view wrapped in a ToolbarItem. Under is an instance:

Every ToolbarItem lets you outline the place of the merchandise by using the placement parameter. So as to add objects within the navigation bar, you possibly can specify the next values:

  • .topBarLeading – Locations the merchandise in the vanguard of the highest bar.
  • .topBarTrailing – Locations the merchandise within the trailing fringe of the highest bar.
  • .precept – Locations the merchandise within the principal merchandise part,which is the middle of the navigation bar.

So as to add objects within the backside bar, you possibly can set the worth to .bottomBar and .standing:

  • .bottomBar – Locations the merchandise within the backside toolbar.
  • .standing – In iOS and iPadOS, the system locations standing objects within the middle of the underside toolbar.

The best way to Disguise the Navigation Bar and Backside Bar

Ranging from iOS 16, the toolbar modifier gives builders the power to handle the visibility of toolbars, together with the navigation bar and backside bar. To cover the navigation bar, you possibly can insert the toolbar modifier inside NavigationStack like this:

If you wish to present an possibility for customers to cover/present the navigation bar, you possibly can declare a state variable like under:

Then you possibly can replace the .toolbar modifier like this:

To cover the visibility of the underside bar, you possibly can change .navigationBar with .bottomBar. Right here is an instance:

Controlling the Visibility of Toolbar Background

SwiftUI gives one other modifier referred to as toolbarBackground for builders to regulate the visibility of the toolbar background. To make the navigation bar background clear, you possibly can set the worth of toolbarBackground to .hidden:

To make the background seen, you possibly can set the worth to .seen. Right here is an instance:

After making the code adjustments, you need to see a navigation bar with a blurred background when navigating to the element view.


Toolbar Colour Scheme

You may exert further management over the colour scheme of the navigation bar or backside bar by using the toolbarColorScheme modifier. As an example, to use darkish mode to the navigation bar of the element view, you possibly can apply the toolbarColorScheme modifier to the Picture view as demonstrated under:

Now, while you navigate to the element view, the navigation bar adjustments to darkish mode.



All through this tutorial, we’ve got lined the basics of the Toolbar APIs and explored easy methods to populate objects in toolbars. Because the SwiftUI framework continues to evolve, it gives builders an expanded vary of functionalities to customise the looks of navigation and backside bars. These developments allow builders to create extra visually interesting and tailor-made person interfaces of their SwiftUI apps.

If you wish to be taught extra about SwiftUI, you possibly can try our Mastering SwiftUI ebook. It’s now absolutely up to date for Xcode 15 and iOS 17.

Leave a Reply

Your email address will not be published. Required fields are marked *