Enhancing the tab bar with a bottom accessory

Enhancing the tab bar with a bottom accessory

Learn how to add a custom bottom accessory above the tab bar using the bottom accessory modifier.

In apps such as Apple Podcasts and Apple Music, there’s a floating button sitting right above the tab bar. It controls the media player, and when tapped, it brings up a modal with full controls. What’s nice is that this button is always there, no matter which tab you’re on.

Apple Podcasts app - Apple Music app

With iOS 26 and the new Liquid Glass design system, Apple introduced this style of control, now known as a bottom accessory. You can add one to your app by calling tabViewBottomAccessory(_:) on a TabView.

When the tab bar collapses during the scroll, the accessory blends right in. This default behavior conforms to the heart principle of Liquid Glass: prioritizing clarity and making controls and navigation layouts harmoniously integrated with the background, ready to emerge from the context only when needed.

Minimized tab bar with inline bottom accessory on scrolling

Let’s see how to implement it.

struct TabBarView: View {
    var body: some View {
        
        // 1. 
        TabView {
            Tab("Home", systemImage: "house") {
                ContentView()
            }
            Tab("Alerts", systemImage: "bell") {
                ContentView()
            }
            Tab("Favorites", systemImage: "heart.fill") {
              ContentView()
            }
            Tab(role: .search) {
                ContentView()
            } label: {
                Image(systemName: "magnifyingglass")
            }
        }
        
        // 2. 
        .tabViewBottomAccessory {
            // 3. 
            Image(systemName: "star.fill")
        }
        
    }
}
  1. Create an instance of a TabView .
  2. Call the tabViewBottomAccessory(_:) modifier.
  3. Add the view to be built as an accessory.
0:00
/0:13

If each tab content contains scrollable content, the accessory will be automatically integrated into the tab bar when collapsing.

To enable this behavior:

struct TabBarView: View {
    var body: some View {
        TabView {
            ScrollView {
                ...
            }
        }.tabViewBottomAccessory {
           Image(systemName: "star.fill")
        }
        // 1.
        .tabBarMinimizeBehavior(.onScrollDown)
    }
}
  1. Call the tabBarMinimizeBehavior(_:) modifier on the TabView
0:00
/0:09

To learn more about how to minimize the tab bar, check this article:

Making the tab bar collapse while scrolling
Learn how to make tab bar minimize when responding to scrolling gesture using the new minimize behavior modifier.

While scrolling, the bottom accessory moves from an expanded TabViewBottomAccessoryPlacement - meaning the bar is placed on top of the bottom tab bar, if there is a bottom tab bar, or at the bottom of the tab’s content view - to an inline one, where the accessory is integrated in line with the bottom tab bar.

Even if the released documentation states the possibility of detecting the placement and adjusting the content of the accessory view accordingly, with iOS 26 beta it's still not working smoothly.

The new bottom accessory in iOS 26 is a small addition that has a significant UX impact. It keeps important actions (like media controls) always available, while still respecting the “content first” principle of Liquid Glass. If you’re building with SwiftUI, this is one of those features that’s easy to add and instantly makes your app feel at home on iOS.