Possible iOS 26 bug: tabViewBottomAccessory not affected by toolbarVisibility

I'm working with an app that has a structure of a main TabView, where each Tab has its own NavigationStack. A very simplified rendition of the app looks like this:


struct ContentView: View {
    var body: some View {
        TabView {
            Tab("Tab 1", systemImage: "document") {
                NavigationStack {
                    VStack {
                        Text("Tab 1")
                        NavigationLink("Load Detail") {
                            VStack {
                                Text("Detail View")
                            }.toolbarVisibility(.hidden, for: .bottomBar, .tabBar)
                        }
                    }
                }
            }
            Tab("Tab 2", systemImage: "map") {
                NavigationStack {
                    VStack {
                        Text("Tab 2")
                    }
                }
            }
        }.tabViewBottomAccessory {
            Button("Action") {}
        }
    }
}

With this structure, when I load the detail view in the NavigationLink, I see the tab bar hidden as I would expect. Unfortunately, the tabViewBottomAccessory button remains visible. I've taken some steps to try and fix this ( injecting state at different levels that observe the navigation path and try to change the visibility ) but none of those attempts work, and it seems to me that fundamentally, if the tab bar is desired to be hidden, then so also should the tab accessory be hidden.

I didn't find anywhere online that seemed to indicate this was a known bug, so wanted to post this here first to see if this was the behavior that is expected, or worth filing a bug in iOS 26.

I should note that even stranger behavior arises when adding a third tab. Here's a new version of the file:


struct ContentView: View {
    var body: some View {
        TabView {
            Tab("Tab 1", systemImage: "document") {
                NavigationStack {
                    VStack {
                        Text("Tab 1")
                        NavigationLink("Load Detail") {
                            VStack {
                                Text("Detail View")
                            }.toolbarVisibility(.hidden, for: .bottomBar, .tabBar)
                        }
                    }
                }
            }
            Tab("Tab 2", systemImage: "map") {
                NavigationStack {
                    VStack {
                        Text("Tab 2")
                    }
                }
            }
            Tab("Tab 3", systemImage: "heart") {
                VStack {
                    Text("Toolbar entirely hidden")
                }.toolbarVisibility(.hidden, for: .bottomBar, .tabBar)
            }
        }.tabViewBottomAccessory {
            Button("Action") {}
        }
    }
}

This third tab contains a no-navigation stack view that simply hides the tab bar ( admittedly, this is somewhat nonsensical, but just showing the issue ). Upon clicking on this third tab, the tab bar disappears momentarily, then returns. When you navigate to another tab, then the tab bar disappears permanently. If you follow this sequence of steps:

  1. Open app
  2. Navigate to third tab
  3. Observe tab bar disappear
  4. Observe tab bar reappear
  5. Navigate to first tab
  6. Observe tab bar disappear
  7. Click on detail link
  8. Observe tab bar remains hidden
  9. Click on "back"
  10. Observe tab bar reappear

This seems to indicate there might be two bugs at play:

  • Tab bar / bottom bar visibility should affect the tab view bottom accessory, and does not
  • When changing tab bar visibility from a contained view, the setting is not correctly respected across tabs
Possible iOS 26 bug: tabViewBottomAccessory not affected by toolbarVisibility
 
 
Q