I am using a common UI pattern: UITabBarController
as window root, each tab with a separate UINavigationController
stack. I want the (bottom!) tab bar to be only visible when the user is at the root of the app and hide it when a detail page is opened.
To do that, I used hidesBottomBarWhenPushed
on any view controller that would be pushed on my navigation stacks and that worked fine in the past.
But with iOS 26, I am seeing several issues:
- On iOS where when the bottom tab bar is used, when in a details page and navigating back, the tab bar becomes fully visible immediately instead of slowly animating in as it has been in the past. This is particular visible and annoying when using the "swipe to go back" gesture
- On iPad, the situation is even worse:
- On iPadOS 18, the tab bar appeared in the navigation controller's navigation bar - no matter if
hidesBottomBarWhenPushed
was set or not - fine. But now, with iPadOS 26, this top tab bar disappears when a child is pushed. - Not only that, it disappears abruptly, without animation, and the Liquid Glass effect on the
UIBarButtonItem
s is broken as well. There is no transition whatsoever, buttons are simply replaced with the newUIBarButtonItem
s of the pushed view controller once it became fully visible. - It gets even worse when swipe-back navigating on iPadOS: As soon as the back transition starts, the tab bar becomes visible again (without animation), covering the title (view) of the
UINavigationController
. If the swipe-back transition is not completed the tab bar suddenly stays visible - When the swipe-back transition is interrupted close to the end of the transition and it goes back to the pushed view controller, the top
UIBarButtonItem
s are showing a visual glitch where the content (text or icon) stays on the area where the tab bar is, while their container (the glass effect) are on the vertically aligned to the title view.
- On iPadOS 18, the tab bar appeared in the navigation controller's navigation bar - no matter if
I am surprised that I have not found any similar reports of these problems, so I am wondering if I am doing anything wrong or using hidesBottomBarWhenPushed
simply isn't recommended or supported any more.