.navigationTitle and List misbehaving with a Map()

When navigated to another view with a NavigationStack or NavigationView, the .navigationTitle modifying a List or Form containing a Map() gets quirky when trying to show the title. The back button is displayed correctly, but the title does not follow the same color scheme as the List of Form, rather it is white with a divider underneath it. It's like it is confusing the .inline with the .large navigation display modes. This doesn't just show up in the simulator, but on actual devices too.

This is a test main view...

import SwiftUI

struct ContentView: View {
    
    var body: some View {
        NavigationStack {
            NavigationLink(destination: MapErrorView()) {
                Text("Map View")
            }
        }
    }
}

This is a test navigated view...

import SwiftUI
import MapKit

struct MapErrorView: View {
    var body: some View {
        NavigationStack {
            Form {
                Section(header: Text("Map of the US States")) {
                    Text("Map Error")
                    Map()
                        .frame(height: 220)
                }
            }
            .navigationTitle("Map Error")
            .navigationBarTitleDisplayMode(.large)
        }
    }
}

Attached is an image showing this error occurring. Does anyone know how I can get around this without using Text() to mock it? That might be the only way to get around this error.

Answered by BabyJ in 847420022

That's actually what navigation bars looked like back in iOS 12 so maybe your simulator is getting nostalgic.

I also noticed in your sample code you are embedding a NavigationStack inside another which isn't recommended, but that isn't the cause of the problem.

I would definitely file a feedback because there is no reason for the navigation bar to look like that just because of a map somewhere in the view hierarchy.

However, there is some good news… this doesn't seem to be a problem in iOS 26, and most importantly, I have a fix and it's this:

.toolbarBackground(.automatic, for: .navigationBar)

// renamed to toolbarBackgroundVisibility in Xcode 26

What you were seeing was the background of the navigation bar being permanently visible, regardless of the scroll position. It seems like the map sort of forced this behaviour.

Turns out, I forgot to upload the pictures! Here they are!

Nested navigation stacks are not supported either when you're using a NavigationStack or NavigationView . You'll be setting yourself up for various unexpected behaviors.

Accepted Answer

That's actually what navigation bars looked like back in iOS 12 so maybe your simulator is getting nostalgic.

I also noticed in your sample code you are embedding a NavigationStack inside another which isn't recommended, but that isn't the cause of the problem.

I would definitely file a feedback because there is no reason for the navigation bar to look like that just because of a map somewhere in the view hierarchy.

However, there is some good news… this doesn't seem to be a problem in iOS 26, and most importantly, I have a fix and it's this:

.toolbarBackground(.automatic, for: .navigationBar)

// renamed to toolbarBackgroundVisibility in Xcode 26

What you were seeing was the background of the navigation bar being permanently visible, regardless of the scroll position. It seems like the map sort of forced this behaviour.

.navigationTitle and List misbehaving with a Map()
 
 
Q