DuoReady
REVIEWED SEPTEMBER 29, 2026

Preserve SwiftUI drafts and selection across resizing

Use one workflow to expose state resets during navigation, display changes and Split View.

A layout can look right and lose the user’s work

Type a draft, select a record and navigate into a detail view. Change the available space, then return. Verify the exact draft and selection, rather than only checking that a screen is visible. Use stable accessibility identifiers for the fields and actions you assert.

Review where state lives

Inspect view identity, conditional layout branches and the ownership of draft and selection state. State belongs to an appropriate stable owner for the journey; a visual change should not accidentally replace that owner. Multiple scenes need independent state, so a global shared selection is not a general solution.

Run one transition per recorded case

Separate navigation, outer-to-inner, inner-to-outer and each supported Split View change. Keep content and starting conditions controlled. Record Xcode build, runtime, destination, commit and transition. Do not credit a generic navigation test with proving fold behavior.

Start with a reproducible fixture

Download the transition pack, compile it in a disposable sample app, then adapt its workflow to your app. The navigation example can run unattended; the display-transition example requires manual Device Hub control and confirmation. The examples have not been executed on macOS by DuoReady.

Sources and limits

Our calculations and proposed test steps are independent analysis. Follow the original documentation for SDK-specific behavior.

Put this into practice.

Check a source snippetDownload the transition starterTry the layout lab ↗See a broken-and-revised source report ↗Review your app’s source ↗