How to let users edit your navigation title
About 2 min
How to let users edit your navigation title êŽë š
SwiftUI by Example
Back to Home
How to let users edit your navigation title | SwiftUI by Example
How to let users edit your navigation title
Updated for Xcode 15
SwiftUI's NavigationStack
can display a simple string by using navigationTitle()
, but that same modifier can also accept a string binding so the user can edit the title by tapping on it.
Important
Navigation title editing only works when your navigation bar is operating in inline mode. As far as I know, it works only on iOS and iPadOS.
For example, this shows a default title of âWelcomeâ, but users can tap that title to change it:
struct ContentView: View {
@State private var title = "Welcome"
var body: some View {
NavigationStack {
Text("Hello, world!")
.navigationTitle($title)
.navigationBarTitleDisplayMode(.inline)
}
}
}
If your title is there because it represents the name of some content your user is editing, I would recommend adding .toolbarRole(.editor)
so that your title is aligned to the leading edge like other document titles:
struct ContentView: View {
@State private var title = "Welcome"
var body: some View {
NavigationStack {
Text("Hello, world!")
.navigationTitle($title)
.navigationBarTitleDisplayMode(.inline)
.toolbarRole(.editor)
}
}
}
Similar solutionsâŠ
How to let users delete rows from a list | SwiftUI by Example
How to let users delete rows from a list
How to let users share content using the system share sheet | SwiftUI by Example
How to let users share content using the system share sheet
How to let users move rows in a list | SwiftUI by Example
How to let users move rows in a list
How to let users import videos using PhotosPicker | SwiftUI by Example
How to let users import videos using PhotosPicker
How to let users customize toolbar buttons | SwiftUI by Example
How to let users customize toolbar buttons