Skip to content

fix(ios): render pager pages inside FullWindowOverlay - #1204

Merged
troZee merged 1 commit into
callstack:mainfrom
dawid-bytys:fix/full-window-overlay-pages
Oct 29, 2026
Merged

troZee merged 1 commit into
callstack:mainfrom
dawid-bytys:fix/full-window-overlay-pages

Conversation

@dawid-bytys

Copy link
Copy Markdown
Contributor

Summary

Pager pages are blank on iOS when rendered inside FullWindowOverlay, even though the tab bar remains visible. My use case is a custom animated modal opened from a native TrueSheet. The modal must appear above the sheet, so I use FullWindowOverlay to render it at the window level. Keeping the modal in the regular React Native view hierarchy or increasing its zIndex does not place it above the native presentation. The pager needs to work inside that overlay.

setupView() exits early when reactViewController() returns nil, which can happen in window-level containers. This prevents the hosting view from being created.

The fix creates the hosting view even without an ancestor controller, establishes containment when one is available, and detaches the hosting controller when its parent disappears or the pager leaves the window. No public API changes.

Reproduction

Minimal Expo reproduction: Open sheet → Open modal → switch tabs.

Before the fix, both pages are blank. After the fix, pages render and support tab switching, swiping, and reopening the modal.

Before / after

Before After
before-patch.mp4
after-patch.mp4

Testing

  • Verified rendering, tab switching, swiping, and reopening on iPhone 17 Pro Simulator, iOS 26.5.
  • Full iOS E2E suite: 20 passed, 1 failed, 0 skipped. The ScrollView tab test also fails after rebuilding without this fix.
  • Type checks, lint, formatting checks, and library build passed; lint reports existing warnings.

The change is limited to iOS. Android is unchanged; physical devices were not tested.

@troZee
troZee merged commit a772131 into callstack:main Oct 29, 2026
10 of 12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants