iOS 26: Toolbar button background flashes black during NavigationStack transitions (dark mode)

I’m seeing a visual glitch with toolbar buttons when building with Xcode 26 for iOS 26.

During transitions (both pushing in a NavigationStack and presenting a .sheet with its own NavigationStack), the toolbar button briefly flashes the wrong background colour (black in dark mode, white in light mode) before animating to the correct Liquid Glass appearance.

This happens even in a minimal example and only seems to affect system toolbar buttons. A custom view with .glassEffect() doesn’t have the issue. I’ve tried: .tint(...), UINavigationBarAppearance/UIToolbarAppearance, and setting backgrounds on hosting/nav/window but none of those made any difference.

Here’s a minimal reproducible example:

import SwiftUI

struct ContentView: View {
    @State private var showingSheet = false

    var body: some View {
        NavigationStack {
            List {
                NavigationLink("Push (same stack — morphs)") {
                    DetailView()
                }
                Button("Sheet (separate stack — flashes)") {
                    showingSheet = true
                }
            }
            .navigationTitle("Root")
            .scrollContentBackground(.hidden)
            .background(.gray)
            .toolbar {
                ToolbarItem(placement: .topBarTrailing) {
                    Button("Action") {}
                }
            }
            .sheet(isPresented: $showingSheet) {
                SheetView()
            }
        }
    }
}

struct DetailView: View {
    var body: some View {
        Text("Detail (same stack)")
            .frame(maxWidth: .infinity, maxHeight: .infinity)
            .background(.gray)
            .navigationTitle("Detail")
            .toolbar {
                ToolbarItem(placement: .topBarTrailing) {
                    Button("Action") {}
                }
            }
    }
}

struct SheetView: View {
    var body: some View {
        NavigationStack {
            Text("Sheet (separate stack)")
                .frame(maxWidth: .infinity, maxHeight: .infinity)
                .background(.gray)
                .navigationTitle("Sheet")
                .toolbar {
                    ToolbarItem(placement: .topBarTrailing) {
                        Button("Action") {}
                    }
                }
        }
    }
}

Has anyone else seen this or found a workaround outside of disabling this background completely with .sharedBackgroundVisibility(.hidden)?


I have filed a bug report under FB22141183

Dear Matt,

This is an issue we're aware of, but we're not aware of any recommended workaround so far. If you find something that helps you avoid the issue, please share it with the community by posting it here.

Thank you very much for posting a bug report to document this. Developer contributions are invaluable for fixing issues!

Thanks for your due diligence,

Richard Yeh  Developer Technical Support

Related observation, though this does not fix the push/sheet transition in the original reproduction: on an iPhone 15 Pro running iOS 26.6, our native tab bar and toolbar buttons flashed when returning from the background in dark mode. Instrumentation showed the scene’s interface style briefly changing dark → light → dark while backgrounded. When our app follows the system appearance, setting the window’s overrideUserInterfaceStyle to its current effective style during scene deactivation, then resetting it to .unspecified on activation, stopped the flash while preserving native Liquid Glass. This was validated on our device; it should not be considered a general workaround for this thread.

iOS 26: Toolbar button background flashes black during NavigationStack transitions (dark mode)
 
 
Q