Overview
This article explains how to add buttons to a navigation bar in SwiftUI using the .toolbar modifier, including placing them on the leading or trailing side, and using text or images for buttons.

Code Snippet
import SwiftUI
struct ContentView: View {
var body: some View {
NavigationStack{
Text("Main Content")
.toolbar {
// Leading button
ToolbarItem(placement: .topBarLeading) {
Button("Leading") {
// Button Action
}
}
// Trailing button with
// view modifiers
ToolbarItem(placement: .topBarTrailing) {
Button(action: {
// Button Action
}) {
Image(systemName: "bell")
}
}
}
}
}
}Code Explanation
NavigationStack: This is used to handle the navigation of views within the app.Text("Main Content"): Represents the main content of the screen..toolbar: This modifier is used to define the toolbar content for the navigation area.ToolbarItem(placement: .topBarLeading): Specifies a toolbar item on the leading side of the navigation bar.Button("Leading"): Creates a button labeled “Leading”. The action to be performed when tapped is defined within the braces. You can add your own action inside of this braces.ToolbarItem(placement: .topBarTrailing): Places a toolbar item on the trailing side.Button(action: {}) { Image(systemName: "bell") }: Defines a button with an icon. The action for the button and the use of a system image as the button’s content.
This code demonstrates the flexibility of SwiftUI’s .toolbar modifier in adding and positioning buttons within the navigation bar, either with text or icons.

