Create a toolbar and add buttons to it in SwiftUI
In this tutorial, we will see how to create a toolbar and add buttons to it in SwiftUI.
A toolbar is like a row of buttons at the top or bottom of our computer screen or app. It makes it easy to do common things quickly, like saving a file or changing the font in a document. It is like having our favorite tools in an easy-to-reach place.
SwiftUI provides a handy modifier called toolbar() to add a toolbar to our view. We can create a toolbar and add buttons to it in various methods.
Using ToolbarItemGroup
In SwiftUI, a ToolbarItemGroup is a way to group and arrange multiple buttons or controls together in a toolbar. It helps us keep things nice and tidy.
Example
import SwiftUI
struct ContentView: View {
var body: some View {
NavigationStack {
Text("Hello, Toolbar!")
.navigationTitle("SwiftUI Toolbar Example")
.toolbar {
ToolbarItemGroup(placement: .navigationBarLeading) {
Button("Share") {
// Handle share action
print("Sharing something!")
}
}
ToolbarItemGroup(placement: .navigationBarTrailing) {
Button("Edit") {
// Handle edit action
print("Editing something!")
}
}
}
}
}
}In the above program, I have used the toolbar() modifier to create a toolbar and add buttons to it for the navigation bar. In this example, there are two groups of toolbar items.
- The first group (
.navigationBarLeading)has a “Share” button on the leading (left) side of the navigation bar. When we tap this button, it will display a message “Sharing something!” in the console. - The second group (
.navigationBarTrailing) has an “Edit” button on the trailing (right) side of the navigation bar. When we tap this button, it will display a message “Editing something!” in the console.
So, it is a simple SwiftUI program that will create a view with a navigation bar, a text label, and a toolbar with two buttons for sharing and editing.
Output:

Using the ToolbarItem
We can also use the ToolbarItem instead of ToolbarItemGroup to add buttons in a toolbar in SwiftUI.
Have a look at the example below.
import SwiftUI
struct ContentView: View {
var body: some View {
NavigationView {
Text("Hello, Toolbar!")
.navigationTitle("SwiftUI Toolbar Example")
.toolbar {
ToolbarItem(placement: .navigationBarLeading) {
Button("Share") {
// Handle share action
print("Sharing something!")
}
}
ToolbarItem(placement: .navigationBarTrailing) {
Button("Edit") {
// Handle edit action
print("Editing something!")
}
}
}
}
}
}The above code will also create a simple app interface with a navigation bar, a title, and two toolbar buttons (“Share” and “Edit”). When we tap the “Share” or “Edit” buttons, it will print corresponding messages to the console.
Output:

We can also add those toolbar buttons only on the leading (left) or trailing (right) side of the navigation bar. We can do that by embedding those buttons into a single ToolbarItem and specifying the placement to leading or trailing.
Now, have a look at the example below.
import SwiftUI
struct ContentView: View {
var body: some View {
NavigationStack {
Text("Hello, Toolbar!")
.navigationTitle("SwiftUI Toolbar Example")
.toolbar {
ToolbarItem(placement: .navigationBarLeading) {
HStack {
Button("Share") {
// Handle edit action
print("Sharing something!")
}
Button("Edit") {
// Handle delete action
print("Editing something!")
}
}
}
}
}
}
}As you can see in the above program, I have removed the ToolbarItem(placement: .navigationBarLeading) section, so there is only one toolbar item on the trailing side.
Then, Inside the trailing toolbar item, I used a HStack to horizontally stack the “Edit” and “Delete” buttons.
Output:

We can specify the Placement of the ToolbarItem to .navigationBarTrailing to have those buttons on the trailing (right) side of the navigation bar.
Leave a Reply