On unfolding, our app's horizontalSizeClass becomes .regular, and UITabBarController automatically promotes to the iPadOS-style sidebar. We suppress this with mode = .tabBar (iOS 18+) and sidebar.preferredPlacement = .tabBar / sidebar.preferredLayout = .tile (iOS 27+) to keep a bottom tab bar. Is this the correct/recommended approach for a foldable iPhone's inner display, or is there a foldable-specific tab bar mode we should be using instead?
Guidance on UITabBarController sidebar suppression for foldable iPhone regular-width layouts
Using UITabBarController is definitely the right way to go here! By default, apps that adopt sidebar APIs on UITabBarController will NOT gain sidebars on iPhone Duo or any other iPhone for that matter by default.
The default placement on iPhone remains .tabBar, and you do not need to actively "suppress" the representation by forcing mode = .tabBar or sidebar.preferredPlacement = .tabBar. Sidebars are an opt-in placement for iPhone while they are default for other platforms (like iPadOS, macOS, or visionOS). It's up to the app to determine if they prefer tab bar or sidebar placement when they are mutually exclusive.
Using UITabBarController on its own will ensure that you will adapt with system recommendations and representations (like the vertical tab bar on iPhone Duo where supported).
One extra thing to note is that there's no need to set sidebar.preferredLayout = .tile at all, even on iPad, unless your app requires it. The suggested (and default) layout should be overlay (it's also what .automatic resolves to!), as it will allow your app's horizontal scrolling content to scroll under sidebars where appropriate.