fullScreenCover & Sheet modifier lifecycles

Hello everyone,

I’m running into an issue where a partial sheet repeatedly presents and dismisses in a loop.

Setup

  • The main screen is presented using fullScreenCover
  • From that screen, a button triggers a standard partial-height sheet
  • The sheet is presented using .sheet(item:)

Expected Behavior

  • Tapping the button should present the sheet once and allow it to be dismissed normally.

Actual Behavior

  • After the sheet is triggered, it continuously presents and dismisses.

What I’ve Verified

  • The bound item is not being reassigned in either the parent or the presented view
  • There is no .task, .onAppear, or .onChange that sets the item again
  • The loop appears to happen without any explicit state updates

Additional Context

  • I encountered a very similar issue when iOS 26.0 was first released
    • At that time, moving the .sheet modifier to a higher parent level resolved the issue
  • The problem has now returned on iOS 26.4 beta
  • I’m currently unable to reproduce this in a minimal sample project, which makes it unclear whether:
    • this is a framework regression, or
    • I’m missing a new presentation requirement

Environment

  • iOS: 26.4 beta
  • Xcode: 26.4 beta

I’ve attached a screen recording of the behavior.

Has anyone else experienced this with a fullScreenCoversheet flow on iOS 26.4?

Any guidance or confirmation would be greatly appreciated.

Thank you!

fullScreenCover & Sheet modifier lifecycles
 
 
Q