The basic navigationTitle()
modifier lets us display a string in the navigation bar, like this:
struct ContentView: View {
var body: some View {
NavigationStack {
Text("Hello, world!")
.navigationTitle("SwiftUI")
}
}
}
But if you're using the .inline
title display mode, you can also pass a binding to navigationTitle()
. This will then be displayed as usual, but with an important addition: iOS will show a small arrow next to your title, that reveals a "Rename" button to change the title.
Here's how that looks in code:
struct ContentView: View {
@State private var title = "SwiftUI"
var body: some View {
NavigationStack {
Text("Hello, world!")
.navigationTitle($title)
.navigationBarTitleDisplayMode(.inline)
}
}
}
This is great for times when that title reflects the name of something entered by the user, because it means you don't need to add an extra textfield to your layout.
SPONSORED Transform your career with the iOS Lead Essentials. Unlock over 40 hours of expert training, mentorship, and community support to secure your place among the best devs. Click for early access to this limited offer and a FREE crash course.
Sponsor Hacking with Swift and reach the world's largest Swift community!
Link copied to your pasteboard.