-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Description
Description
In a .NET MAUI Shell application, when using a that contains multiple items, iOS renders a top tab bar (similar to segmented controls). However, it's currently not possible to customize the text color, background, or font of these top tab labels.
Shell styling properties like Shell.TabBarTitleColor, Shell.TabBarUnselectedColor, and Shell.TabBarBackgroundColor work correctly for bottom tabs, but have no effect on top tabs generated from multiple ShellContent entries.
Steps to Reproduce
- Define a Shell tab with multiple ShellContent items:
<Tab Title="Diagnostics" Icon="icon.png">
<ShellContent Title="In/Out" ContentTemplate="{DataTemplate views:InOutTab}" />
<ShellContent Title="Alarms" ContentTemplate="{DataTemplate views:AlarmsTab}" />
</Tab>
- Set Shell styling properties:
Shell.TabBarTitleColor="White"
Shell.TabBarUnselectedColor="Gray"
Shell.TabBarBackgroundColor="Black"
- Run the app on iOS
Expected Behavior
The top tab labels should reflect the specified styling — for example, white text on a black background.
Actual Behavior
The top tab labels remain black or use the system default color, ignoring all Shell styling properties.
Environment
• .NET MAUI version: [insert your version]
• iOS version: 18.7.1
• Device: iPhone XS
• TargetFramework: net9.0-ios
Request
Please expose a way to style the top tab labels generated by multiple ShellContent items in a single . This includes text color, selected/unselected state, background, and font. Alternatively, provide an official workaround or API to achieve consistent styling across all tab types in Shell.
Link to public reproduction project repository
No response
Version with bug
9.0.100 SR10
Is this a regression from previous behavior?
No, this is something new
Last version that worked well
No response
Affected platforms
iOS
Affected platform versions
All iOS devices
Did you find any workaround?
• Tried using UISegmentedControl.Appearance.SetTitleTextAttributes(...) in AppDelegate, but it has no effect — MAUI does not use a native UISegmentedControl for these tabs.
• Attempted to locate the control via reflection — no UISegmentedControl exists in the native view hierarchy.
• Used Shell.SetTitleView(...) — this only affects the navigation bar title, not the tab labels.