A SwiftUI @Binding passed three levels deep caused state drift when a child view wrote default values in onAppear. The issue arose because onAppear fires multiple times in navigation views, not just once as assumed. The fix involved moving defaults to model initialization and making bindings read-only until user interaction occurred, preventing unintended upstream writes.

1m watch time

Sort: