I've been trying to update my apps for iOS 26, and all summer I kept hitting this issue with the navigation bar title. I was hoping Apple would eventually fix it, but it still seems to be broken in beta 9, so now I'm wondering if I'm doing something wrong.
Here's a minimal working example:
struct ContentView: View {
@State private var path = NavigationPath()
var body: some View {
NavigationStack(path: $path) {
List {
Text("Item 1")
Text("Item 2")
Text("Item 3")
}
.navigationTitle("Title")
.toolbarBackground(Color(red: 0.5, green: 0.5, blue: 0.5), for: .navigationBar)
.toolbarBackgroundVisibility(.visible, for: .navigationBar)
}
}
}
Expected result: The title should be rendered on a gray background.
Actual result: The title is invisible because it is rendered below the gray background.
If I modify the gray color with .opacity(0.5)
, then it becomes clear that the title is indeed present, but it's behind the background.
This example works correctly in iOS 18.
Is this an iOS 26 bug or is this a forbidden design now because everything has to be translucent?