Custom UIPresentationController cannot match iPhone Duo sheet vertical-bar behavior

Tested on iPhone Duo with iOS 27.1 in Xcode 27.1 Beta

Presented VC returns .disabled from preferredVerticalBarBehavior. With UISheetPresentationController, the sheet's trailing safe-area inset is removed at all detents (including default medium and large, plus custom detents at various fixed heights).

The interesting part: the status bar remains in the vertical bar for detents below UISheetPresentationControllerDetentResolutionContext.maximumDetentValue, but at detents that are greater than or equal to that maximumDetentValue, the status bar moves to the top.

With a custom UIPresentationController:

  • Default shouldPresentInFullscreen == true: trailing inset remains, regardless of presented VC's preferredVerticalBarBehavior (possibly expected)
  • With shouldPresentInFullscreen == false: trailing inset is removed, but the status bar moves to the top regardless of the presented view's height.
    • Using automatic as preferredVerticalBarBehavior keeps the status bar on the right, but also keeps the safe-area insets increased.

Is UISheetPresentationController applying detent-aware, presentation-scoped vertical bar behavior? Is there a public way for a custom UIPresentationController to remove the sheet's vertical-bar inset while keeping the status bar vertical [until the presentation reaches full height]?

Custom UIPresentationController cannot match iPhone Duo sheet vertical-bar behavior
 
 
Q