I'm adapting modal sheet presentation for iPhone Duo. My root is a UITabBarController, and I present detail view controllers with present(_:animated:) using .pageSheet / UISheetPresentationController. I want to confirm how much of the sheet's placement and sizing I can control as the device moves between poses, and which APIs are the intended levers versus behavior the system owns.
1. Closed pose — constraining sheet width away from the edges
With modalPresentationStyle = .pageSheet in a horizontally compact layout, the sheet spans the full width. Is there a supported way to constrain its width so it doesn't run edge-to-edge — e.g. via the presented controller's preferredContentSize, a .formSheet style, or a custom UIPresentationController with an overridden frameOfPresentedViewInContainerView? Does UISheetPresentationController honor a preferred width, or is width strictly derived from the container's size class?
2. Partial open — targeting which arrangement the sheet presents over
When the device is partially open and multiple arrangements are visible, can I influence which arrangement (leading vs. trailing) the sheet is presented in? Does the presentation container respect reserved regions and the current UIArrangement, and is there a recommended way to anchor a modal presentation to a specific arrangement — or is the presenting view controller's location in the hierarchy the only determinant?
3. Fully open — driving large vs. compact sheet sizing
When fully unfolded with the additional horizontal space, is detents the correct mechanism to switch between a compact and expanded sheet (e.g. .medium(), .large(), or a .custom detent resolved via UISheetPresentationController.Detent.custom)? Should selectedDetentIdentifier be updated in response to trait changes, and is sheetPresentationController.widthFollowsPreferredContentSizeWhenEdgeAttached relevant here?
General question: Should all of the above be driven by observing UITraitCollection changes (size classes) via traitCollectionDidChange(_:) / the trait registration APIs, or is there dedicated iPhone Duo API tied to the hinge angle and arrangements that I should adopt for sheet presentation instead?