popoverTips don't display for toolbar menu buttons in iOS 26.1

[Also submitted as FB20756013]

A popoverTip does not display for toolbar menu buttons in iOS 26.1 (23B5073a). The same code displays tips correctly in iOS 18.6. The issue occurs both in the simulator and on a physical device.

Repro Steps

  1. Build and run the Sample Code below on iOS 26.1.
  2. Observe that the popoverTip does not display.
  3. Repeat on iOS 18.6 to confirm expected behavior.

Expected

popoverTips should appear when attached to a toolbar menu button, as they do in iOS 18.6.

Actual

No tip is displayed on iOS 26.1.

System Info

  • macOS 15.7.1 (24G231)
  • Xcode 26.1 beta 3 (17B5045g)
  • iOS 26.1 (23B5073a)

Screenshot

Screenshot showing two simulators side by side—iOS 18.6 on the left (tip displayed) and iOS 26.1 on the right (no tip displayed).

Sample code

import SwiftUI
import TipKit

struct PopoverTip: Tip {
    var title: Text {
        Text("Menu Tip")
    }

    var message: Text? {
        Text("This tip displays on iOS 18.6, but NOT on iOS 26.1.")
    }
}

struct ContentView: View {
    var tip = PopoverTip()

    var body: some View {
        NavigationStack {
            Text("`popoverTip` doesn't display on iOS 26.1 but does in iOS 18.6")
                .padding()
                .toolbar {
                    ToolbarItem(placement: .topBarTrailing) {
                        Menu {
                            Button("Dismiss", role: .cancel) { }
                            Button("Do Nothing") { }
                        } label: {
                            Label("More", systemImage: "ellipsis")
                        }
                        .popoverTip(tip)
                    }
                }
                .navigationTitle("Popover Tip Issue")
                .navigationBarTitleDisplayMode(.inline)
        }
    }
}

Can confirm, did you find any workaround?

The only workaround I’ve found is to use a text-only menu button label. That lets the tip display correctly on iOS 26 (see below).

This release has (or had) quite a few toolbar-related bugs and most seem related to icon-only buttons. Along with this issue, here are three others I've reported: issue 1, issue 2, and issue 3.

In my app, I've left the icon-only button hoping it gets fixed soon. The actual tip I display is not critical, and a text-only label just looks "off"—especially since Apple officially designates the ellipsis symbol as the standard for More (Apple Design link).

Workaround

Starting with the code in the first post, just change the Label() in the ToolbarItem to Text() like this:

ToolbarItem(placement: .topBarTrailing) {
    Menu {
        Button("Dismiss", role: .cancel) { }
        Button("Do Nothing") { }
    } label: {
        Text("More")
    }
    .popoverTip(tip)
}

Screenshot

Description: iPhone simulator running iOS 26.1 showing a popover labeled Menu Tip. The popover beak is pointing to a toolbar button labeled More.

Welp, I just pulled TipKit from my app as this is still not fixed in iOS 26.5 (23F5043k).

I was only using it for one tip, so not a big loss. Still, it’s a shame—TipKit has a lot of potential, but there are too many limitations and paper cuts like this one.

This is the workaround that I am currently using, which is just using TipKit's model to drive a popover(). Note that these popovers, in iOS 26, use the iOS 26 LiquidGlass morphing-button popover style.

import SwiftUI
import TipKit

extension View {
    func popoverTipWorkaround(_ tip: some Tip) -> some View {
        modifier(PopoverTipWorkaround(tip: tip))
    }
}

private struct PopoverTipWorkaround<T: Tip>: ViewModifier {
    let tip: T
    @State private var shouldDisplay = false

    func body(content: Content) -> some View {
        content
            .popover(isPresented: $shouldDisplay) {
                TipView(tip)
                    .tipViewStyle(NoDismissTipStyle())
                    .tipBackground(.clear)
                    .presentationCompactAdaptation(.popover)
            }
            .task {
                for await status in tip.statusUpdates {
                    if status == .available {
                        shouldDisplay = true
                    }
                }
            }
    }
}

private struct NoDismissTipStyle: TipViewStyle {
    func makeBody(configuration: Configuration) -> some View {
        VStack(alignment: .leading) {
            configuration.title
            configuration.message
        }
        .padding()
    }
}
popoverTips don't display for toolbar menu buttons in iOS 26.1
 
 
Q