OK UIKit folks, here's one for you. How am I supposed to add an iOS 26 inspector to the split view when my root controller is the modern UITabBarController and I don't have direct access to the split view controller? Is there API for this or do I have to walk the hierarchy and have a child VC invoke it?
Also, if I wanted to have custom UI in my sidebar, like say the Reminders-style quad, I guess I'm SOL with this UITabBarController API? Is there a way to vend a custom sidebar controller instead of the automatic one?
@stroughtonsmith This is unfortunately not supported with UITabSidebar. We do have header/footerContentConfiguration APIs, as well as APIs for customizing the UIContentConfiguration of the individual sidebar items, but not one that can achieve this grid layout.
@andyl that's a shame; now that I want to adopt the modern tab controller in a real app I'm finding a bunch of little ways it's just not quite/customizable enough to achieve the UI I was planning on shipping. Little things like not being able to have different labels for sidebar vs tab bar, or turn off collapsibility on sidebar sections, or having specific tab items that only show in sidebar but not tab bar, etc. I'm not at the stage of recreating it with a custom control yet, but getting there
@stroughtonsmith @andyl “different labels, having specific tab items that only show in the sidebar but not tab bar" is this really not possible? doesn't files.app do this? (it has a tab called browse that shows as “on this ipad" when in sidebar mode)
@Joekw @andyl I'm still working my way through the APIs, but it seems to me that the sidebar 'must' show everything, whereas you can customize the available identifiers for the compact mode. But I want to customize both. I expect I will have to monitor size class changes and inserts/remove tabs dynamically instead
@stroughtonsmith @andyl you've inspired me to check how my apps feel with the modern tab bar. maybe i'm being dumb but i don't understand how the UITabGroup is meant to work: it seems like every item returns the controller from the group provider instead of the actual tab controller? if i dont provide a group controller then it just crashes about the root tab needing a controller
@Joekw @andyl this confused me too — the tab group is a list of sidebar items that resolves to a single fallback view controller from the minimized tab bar itself. E.g. a list of folders in the sidebar would compact down to an 'all folders' view controller of your choosing. You need to provide both the tabs and the fallback
@stroughtonsmith @andyl it really does seem like the compact tab bar just ignores the preferredPlacement = .sidebarOnly property. good stuff. (here Discover is set to .sidebarOnly)
@Joekw @andyl but there is a property to set the visible tab identifiers for compact mode, too
@stroughtonsmith @andyl this API is actually driving me crazy. if you have a 5 item tab bar and add a tab group with .sidebarOnly and don't include it in the compactTabIdentifiers, it still creates a more item 😭
@Joekw @stroughtonsmith @andyl I think TabView / UITabVC is woefully under-equipped for the complexities of modern app navigation

@BenRiceM @Joekw @stroughtonsmith There are 2 videos that go into detail on how this works:

1. From WWDC24 that explains these new APIs: https://developer.apple.com/videos/play/wwdc2024/10147
2. From this year, which explains managingNavigationController to automatically manage the hierarchy and selection of a tab group as a navigation stack: https://developer.apple.com/videos/play/wwdc2025/282

There are a lot of details that may not be immediately obvious, so let me know if you have questions.

Elevate your tab and sidebar experience in iPadOS - WWDC24 - Videos - Apple Developer

iPadOS 18 introduces a new navigation system that gives people the flexibility to choose between using a tab bar or sidebar. The newly...

Apple Developer
@BenRiceM @Joekw @stroughtonsmith A lot of these APIs are just a year old and we’re definitely still evolving and improving them. If there’s anything that you believe is important that isn’t yet possible, file an ER through Feedback Assistant and let me know! We want to make the best experience possible here, and have spent a lot of time making this better.