UITabBarController render glitch since iOS18 beta 1 & 2 when activating tabs.

We have a UITabBarController in our iPhone App which has 5 tabs with UITableViewControllers (constructed from the storyboard). Before iOS18 beta 1 (and 2) this was working fine without any problems (objective-C).

Since iOS18 beta 1 (and beta 2 still has this problem) a strange render glitch occurs when activating a tab from the tab bar at the bottom.

As soon as a tab is activated (by tapping on the icon at the bottom) the tab with the UITableViewController becomes visible and draws its content starting at the very top of the screen (pos 0,0) right through/over the Navigation bar which at that point is showing a title and a rightBarButtonItem. The tab with the UITableViewController seems not aware there is a navigation bar visible.

Then after ~0.3 seconds the tab with the UITableViewContoller is automatically rendered again or moved down and now its content starts below the UINavigationBar as expected, this is 100% reproducible and occurs on every activation of a tab in the UITabBarController.

Is anyone else also getting this behavior in their App since iOS18? I'm aware that UITabBarController is being renewed but I can't find any information on why this behavior might occur. I was hoping beta 2 would solve the problem but it doesn't. Constructing the UITabBarController in the code with the new UITab objects (instead of constructing them from the storyboard) also shows this problem.

Answered by Frameworks Engineer in 792922022

I'm not aware of anything like this being known – please file a bug report!

Accepted Answer

I'm not aware of anything like this being known – please file a bug report!

This bug is still present in iOS18 beta 3.

Here is a workaround/solution which works in beta 1 to 3:

Embed each UITableViewController in its own UINavigationController instead of assigning it directly to a tab.

Make the UITableVIewController the rootViewController of the UINavigationController and assign the UINavigationController as the viewController to the tab.

This gets rid of the 'move down' glitch, so possibly the new UITabBarController assumes the usage of UINavigationControllers in the tabs.

@BMS have you filed a bug report and received any response to it? I am hitting the same issue and feel like there shouldn't be a workaround needed. But it seems like Apple really wants us to have only UINavigationController as children for the UITabBarController - the new "tab bar" on iPad also only seems to share the space with the navigation bar of child view controllers - it doesn't work if the Tab bar controller itself is nested in a UINavigationController

I can see same problem on my end on iOS 18 simulator. On a real iPhone with iOS 17 it works without that little "offset jump" really obnoxious

UITabBarController render glitch since iOS18 beta 1 & 2 when activating tabs.
 
 
Q