Skip to content

[iOS] Tab bar ghosting issue on iOS 26 (liquid glass) #34143

@oleh-kaliuzhnyi

Description

@oleh-kaliuzhnyi

Description

The tab bar gets rendered incorrectly on iOS 26 if UI compatibility mode is disabled.
The selected tab bar item becomes empty. Ghosting issue appears.

Image Image

Steps to Reproduce

  1. Create a new MAUI project with a shell.
  2. Add 3 pages: MainPage, ModalPage, TabPage with a button in each.
  3. Add MainPage as a ShellContent to the shell. This one should appear first right after the app start.
  4. Add 2 or more TabPage in <TabBar/> of the shell to make the tab bar visible.
  5. Setup navigation in the pages.
  • MainPage's button navigates to ModalPage using Shell.Current.Navigation.PushModalAsync()
  • Modal's button navigates to the tabs using Shell.Current.GoToAsync()
  1. Run the app on iOS 26 simulator.
  2. Tap at the first button to present a modal.
  3. Tap at the button to navigate from the modal page to the tabbed content.
  4. Observe the tab bar.

iOS 26
XCode 26.2
Microsoft.Maui.Controls 10.0.40
dotnet workload list output:

Workload version: 10.0.102

Installed Workload Id      Manifest Version         Installation Source
-----------------------------------------------------------------------
android                    36.1.12/10.0.100         SDK 10.0.100       
ios                        26.2.10191/10.0.100      SDK 10.0.100       
maui                       10.0.1/10.0.100          SDK 10.0.100       
maui-android               10.0.1/10.0.100          SDK 10.0.100       
maui-ios                   10.0.1/10.0.100          SDK 10.0.100

Link to public reproduction project repository

https://github.com/oleh-kaliuzhnyi/ShellTabBarGhostingIssue/tree/master

Version with bug

10.0.40

Is this a regression from previous behavior?

Yes, this used to work in .NET MAUI

Last version that worked well

9.0.120 with target iOS version 18

Affected platforms

iOS

Affected platform versions

iOS 26

Did you find any workaround?

Either enable UI compatibility mode in Info.plist

<key>UIDesignRequiresCompatibility</key>
<true/>

Or

Do not use modal stack. Push the page to the regular stack using Shell.Current.Navigation.PushAsync() instead of using Shell.Current.Navigation.PushModalAsync()

Relevant log output

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-controls-shellShell Navigation, Routes, Tabs, Flyoutplatform/ioss/triagedIssue has been revieweds/verifiedVerified / Reproducible Issue ready for Engineering Triaget/bugSomething isn't workingversion/iOS-26

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions