Nested `Menu` (submenu) jumps / misplaces on first open when presented from a partial-height `.sheet` (iOS 26, iPhone, Liquid Glass)

On iOS 26, a nested Menu (a drill-in submenu) visibly jumps and repositions for about a second the first time a submenu is opened, when the menu lives inside a .sheet that is at any partial-height detent.medium, or a custom .height(...)/.fraction(...) detent. Reopening the same submenu is smooth. The problem does not occur on iPad, does not occur when the sheet is at full height (.large), and does not occur for a flat (single-level) menu. It reproduces with a completely stock Menu, and also with a UIKit UIButton + UIMenu, so it does not appear to be tied to any specific app code. The trigger is purely that the sheet's presentation host is shorter than the screen — the specific detent type does not matter. Minimal reproducible example (stock SwiftUI only)

import SwiftUI

struct MinimalRepro: View {
    @State private var showSheet = false

    var body: some View {
        Button("Open sheet") { showSheet = true }
            .sheet(isPresented: $showSheet) {
                VStack {
                    Menu("Status") {
                        Menu("Category A") {
                            Button("Option 1") {}
                            Button("Option 2") {}
                            Button("Option 3") {}
                        }
                        Menu("Category B") {
                            Button("Option 4") {}
                            Button("Option 5") {}
                            Button("Option 6") {}
                        }
                        Menu("Category C") {
                            Button("Option 7") {}
                            Button("Option 8") {}
                            Button("Option 9") {}
                        }
                    }
                    .padding()
                    Spacer()
                }
                .presentationDetents([.medium, .large])
            }
    }
}

Steps to reproduce

  1. Run on an iPhone (or iPhone simulator) on iOS 26.
  2. Tap Open sheet. The sheet appears at the .medium (half-height) detent.
  3. Tap Status to open the outer menu, then tap Category A to open the submenu.
  4. Observe the submenu on this first open.

Expected

The submenu appears anchored to its parent item and animates in place, exactly as on iPad and exactly as on the second open.

Actual

On the first open, the submenu appears in the wrong position / at the wrong size and then jumps (snaps) into place over roughly one second. Subsequent opens of the same submenu are smooth.

Has anyone found a way to keep drill-in submenus in a partial-height sheet without the first-open jump? So far the only workarounds I've found change the UX (flatten the menu to a single level, present at full height).

Answered by DTS Engineer in 903030022

Thanks for that @dvny2003 !

I see the issue you are describing in that video. When I run your code on the latest 27 beta release, I do not see the sub menu jump on first open. Tested on a iPhone 17 simulator.

Let me know if this is the case for you, and we can add these details to your report as well so the relevant engineering team is aware the issue is resolved. If not, I'd like to know what simulator device you are testing on so I can be in the same exact environment as you.

Thank you.

 Travis

Hello @dvny2003

When I test your code on iOS 26 and iOS 27 as well as iPad, I don't see any noticeable jump/difference in position of the context menu after subsequent opens or across different simulator versions.

Do you see the issue resolved in iOS 27?

To make sure I am seeing exactly what you are seeing, please file a bug report using Feedback Assistant, attach screenshots, recordings, your sample project and explicit steps to reproduce the issue. I tested on iPhone 17 simulator iOS 26.5, include the affected platform and versions in your report as well.

Reply here with the feedback number, I will take a look and ensure it is routed to the relevant engineering team.

Thank you.

 Travis

Hi Travis, thanks for the reply. I created a bug report here is the feedback number: FB24503182 (Nested Menu (submenu) jumps / misplaces on first open when presented from a partial-height .sheet (iOS 26, iPhone, Liquid Glass))

Thanks for that @dvny2003 !

I see the issue you are describing in that video. When I run your code on the latest 27 beta release, I do not see the sub menu jump on first open. Tested on a iPhone 17 simulator.

Let me know if this is the case for you, and we can add these details to your report as well so the relevant engineering team is aware the issue is resolved. If not, I'd like to know what simulator device you are testing on so I can be in the same exact environment as you.

Thank you.

 Travis

Nested `Menu` (submenu) jumps / misplaces on first open when presented from a partial-height `.sheet` (iOS 26, iPhone, Liquid Glass)
 
 
Q