Ios Stacked Modals
Presenting a second .sheet or .fullScreenCover on top of an already-presented sheet, creating multiple layered modal contexts.
$ aoe install @community/anti-pattern-ios-stacked-modals Projection
Always in _index.xml · the agent never has to ask for this.
IosStackedModals [anti-pattern] v1.0.0
Presenting a second .sheet or .fullScreenCover on top of an already-presented sheet, creating multiple layered modal contexts.
Loaded when retrieval picks the atom as adjacent / supporting.
IosStackedModals [anti-pattern] v1.0.0
Presenting a second .sheet or .fullScreenCover on top of an already-presented sheet, creating multiple layered modal contexts.
Label
iOS Stacked Modals (Sheet on Sheet)
Meta
- License: MIT AND Apache-2.0
- License Provenance: legacy-backfill
Why Bad
Users lose track of their position in the app when multiple sheets are stacked. Dismissal order is confusing — dismissing the top sheet may not return them where they expect. App navigation depth becomes unclear. Apple HIG Anti-Pattern #14 explicitly forbids this pattern.
Instead Do
Use a NavigationStack inside a single sheet to handle multi-step flows within the same modal context. Each step pushes a new view on the stack rather than presenting a new sheet. The outer sheet has one cancel path; individual steps use the navigation back button.
Loaded when retrieval picks the atom as a focal / direct hit.
IosStackedModals [anti-pattern] v1.0.0
Presenting a second .sheet or .fullScreenCover on top of an already-presented sheet, creating multiple layered modal contexts.
Label
iOS Stacked Modals (Sheet on Sheet)
Meta
- License: MIT AND Apache-2.0
- License Provenance: legacy-backfill
Why Bad
Users lose track of their position in the app when multiple sheets are stacked. Dismissal order is confusing — dismissing the top sheet may not return them where they expect. App navigation depth becomes unclear. Apple HIG Anti-Pattern #14 explicitly forbids this pattern.
Instead Do
Use a NavigationStack inside a single sheet to handle multi-step flows within the same modal context. Each step pushes a new view on the stack rather than presenting a new sheet. The outer sheet has one cancel path; individual steps use the navigation back button.
Relations
related: [@community/anti-pattern-ios-non-dismissable-modal, @community/pattern-ios-sheet-presentation, @community/pattern-ios-navigation-stack]
Label
iOS Stacked Modals (Sheet on Sheet)
Meta
- License: MIT AND Apache-2.0
- License Provenance: legacy-backfill
Why Bad
Users lose track of their position in the app when multiple sheets are stacked. Dismissal order is confusing — dismissing the top sheet may not return them where they expect. App navigation depth becomes unclear. Apple HIG Anti-Pattern #14 explicitly forbids this pattern.
Instead Do
Use a NavigationStack inside a single sheet to handle multi-step flows within the same modal context. Each step pushes a new view on the stack rather than presenting a new sheet. The outer sheet has one cancel path; individual steps use the navigation back button.
Source
aoe-engine/examples/frontend-design/primes/compiled/@community/anti-pattern-ios-stacked-modals/atom.yaml