iOS 26 Liquid Glass: UITabBar overrides selected title text color after trait changes, causing icon and title color mismatch

1 day ago 1
ARTICLE AD BOX

I’m seeing unexpected UITabBar behavior on iOS 26 when Liquid Glass is enabled.

I’m using UITabBarAppearance with a dynamic UIColor to keep the selected tab bar icon and title text in sync (blue in light mode, green in dark mode).

Expected behavior

The selected tab bar icon and title text should always resolve to the same color based on the current trait collection.

Actual behavior

On initial load, the colors are correct. However, after switching light/dark mode automatically due to liquid glass:

The icon keeps the configured color

The title text color is overridden by the system

Result: selected icon and title text end up with different colors

This happens even though both colors are explicitly set to the same dynamic UIColor.

Minimal reproducible example:

enter image description here

func applyAppearance() { let appearance = UITabBarAppearance() appearance.configureWithTransparentBackground() let color = UIColor { trait in trait.userInterfaceStyle == .dark ? .green : .blue } let item = appearance.stackedLayoutAppearance item.selected.iconColor = color item.selected.titleTextAttributes = [ .foregroundColor: color ] tabBar.standardAppearance = appearance tabBar.scrollEdgeAppearance = appearance } override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) { super.traitCollectionDidChange(previousTraitCollection) if traitCollection.hasDifferentColorAppearance(comparedTo: previousTraitCollection) { applyAppearance() } }
Read Entire Article