Changes to tabViewBottomAccessory in iOS 26.1 are Fixed in iOS 26.2
iOS 26.1 introduced an infuriating change to the tabViewBottomAccessory behaviour that is fixed in iOS 26.2.
[Update 09 Nov 2025: there's new API in iOS 26.2 that allows you to hide the tabViewBottomAccessory. See the bottom of this post for more.]
In Singapore Buses on iOS 26, I was able to hide the tabViewBottomAccessory based on various criteria—for example, if location tracking was enabled.
.tabViewBottomAccessory {
if locationTracker.isAuthorised {
HStack {
// Nearby bus stop
}
} else {
EmptyView()
}
}Now, however, it displays the accessory with no content. I haven’t found a workaround yet, so for now I’m showing the tabViewBottomAccessory across all views. This isn’t ideal—the accessory isn’t relevant on the Settings view, for instance.
If this is Apple’s intended behaviour for the accessory, it’s far from ideal.
Update 09 Nov 2025:
There's an update to the tabViewBottomAccessory modifier API in iOS 26.2 that lets you hide the tabViewBottomAccessory when it's not needed:
.tabViewBottomAccessory(isEnabled: $showShowBottomAccessory) {
HStack {
// Nearby bus stop
}
}Problematically, this only works with iOS 26.2. As I don't intend to move away from iOS 26.0 as the minimum requirement for Singapore Buses for several months, I will apply this API using an if #unavailable(iOS 26.1) check. Users on iOS 26.0 - 26.1 will see the accessory on all views. 😞
Discussion