diff --git a/src/Controls/src/Core/Compatibility/Handlers/Shell/iOS/ShellItemRenderer.cs b/src/Controls/src/Core/Compatibility/Handlers/Shell/iOS/ShellItemRenderer.cs index c3fecab58e1e..df356d37a26f 100644 --- a/src/Controls/src/Core/Compatibility/Handlers/Shell/iOS/ShellItemRenderer.cs +++ b/src/Controls/src/Core/Compatibility/Handlers/Shell/iOS/ShellItemRenderer.cs @@ -125,9 +125,18 @@ public override void ViewDidLoad() ShouldSelectViewController = (tabController, viewController) => { bool accept = true; - var r = RendererForViewController(viewController); - if (r is not null) - accept = ((IShellItemController)ShellItem).ProposeSection(r.ShellSection, false); + var renderer = RendererForViewController(viewController); + if (renderer is not null) + { + // On iOS 26+, disabled tabs can still be selected by dragging. + // Return false to prevent selecting disabled tabs. + if (!renderer.ShellSection.IsEnabled && (OperatingSystem.IsIOSVersionAtLeast(26) || OperatingSystem.IsMacCatalystVersionAtLeast(26))) + { + return false; + } + + accept = ((IShellItemController)ShellItem).ProposeSection(renderer.ShellSection, false); + } return accept; };