Skip to content

[Bug] Unable to style top tab labels in Shell when using multiple ShellContent on iOS #32351

@CinzV

Description

@CinzV

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

  1. 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>
  1. Set Shell styling properties:
Shell.TabBarTitleColor="White"
Shell.TabBarUnselectedColor="Gray"
Shell.TabBarBackgroundColor="Black"
  1. 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.

Relevant log output

Metadata

Metadata

Assignees

No one assigned

    Labels

    t/bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions