How to disable tab editing in a UITabBarController sidebar?

I’m creating a UITabBarController with a simple array of UITab instances. I’m setting the mode to .tabSideBar. How do I prevent editing? I don’t want the Edit button to appear at all. I’ve tried setting the tab controller’s customizableViewControllers property to both nil and an empty array but neither is preventing the Edit button from appearing. I scanned the various delegates and I don‘t see any relevant methods.

So far I’ve tested this on a simulated iPad running iPadOS 26 using Xcode 26 RC.

Answered by Frameworks Engineer in 858525022

The 'Edit' button will show up in the sidebar as long as editing is supported in UITabBarController for the current set of tabs.

Editing is supported if any of the following are true:

  1. Any tab has a customizable preferredPlacement (i.e. not .fixed or .pinned)
  2. If a tab can be hidden: allowsHiding = true
  3. If a tab group can be reordered: allowsReordering = true

By default , the preferredPlacement is automatic which does support editing. Set it to .fixed to disable customization for them.

Accepted Answer

The 'Edit' button will show up in the sidebar as long as editing is supported in UITabBarController for the current set of tabs.

Editing is supported if any of the following are true:

  1. Any tab has a customizable preferredPlacement (i.e. not .fixed or .pinned)
  2. If a tab can be hidden: allowsHiding = true
  3. If a tab group can be reordered: allowsReordering = true

By default , the preferredPlacement is automatic which does support editing. Set it to .fixed to disable customization for them.

Thank you. Setting preferredPlacement to fixed was the missing piece. I already had allowsHiding set to false and I’m not using any tab groups. The Edit button no longer appears in the sidebar.

But I have discovered an iOS 26 (and iOS 18) bug in the process. I need to file a bug report but here’s the issue. I present the tab bar controller as a modal view controller on an iPad. If I resize the app window from full screen to a size that is horizontally compact while the tab bar controller is in view, the tab bar controller of course changes from showing a sidebar to showing an old style tab bar on the bottom with a More tab. Selecting the More tab now shows an Edit button. But only in this case. If the tab bar controller is presented after the app window is made horizontally compact, then the More tab does not show the Edit button.

How to disable tab editing in a UITabBarController sidebar?
 
 
Q