`showOverlay` creates a scene-less `UIWindow`, so overlays never appear under UIScene lifecycle
Đánh giá
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 68/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- ios, react-native
- Lĩnh vực
- mobile
Hướng nghiên cứu
Bắt đầu từ phần triển khai native của Navigation.showOverlay và RNNOverlayWindow, đặc biệt là đường đi initWithFrame:, rồi so sánh với cách xử lý _mainWindow hiện có được setRoot sử dụng. Tái hiện bằng một UIWindowSceneDelegate và xác minh rằng cửa sổ overlay được liên kết với UIWindowScene host. Hoàn tất khi showOverlay xuất hiện phía trên root hiện tại trong khi hành vi hiện có của setRoot vẫn không thay đổi.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
What happened?
On iOS, Navigation.showOverlay() creates a new RNNOverlayWindow with initWithFrame: and never assigns a UIWindowScene.
With a scene-based app lifecycle, that window is not added to the scene, so the overlay never appears. JS still mounts and runs (the overlay VC is created and rendered), which makes this look like a hang: native/RNN splash dismisses, overlay logic is running, but the screen stays on RNNSplashScreenViewController / the current root.
Navigation.setRoot() is not affected, because it attaches the layout to the existing _mainWindow that the host already bound to the scene.
This is easy to miss on older iOS if the app still used the AppDelegate window path. It becomes a hard break once the app adopts UIWindowScene (mandatory on iOS 26+).
What was the expected behaviour?
showOverlay shows the overlay above the current root on the same UIWindowScene.
Was it tested on latest react-native-navigation?
- I have tested this issue on the latest react-native-navigation release and it still reproduces.
Help us reproduce this issue!
- Use UIScene lifecycle (
UIApplicationSceneManifest+UIWindowSceneDelegate). - Create the window with
initWithWindowScene:and pass it to RNN (delegate.windowset before bootstrap). - On
Navigation.events().registerAppLaunchedListener, do notsetRoot. Call:
Navigation.showOverlay({
component: {
name: 'example.OverlayScreen',
},
});
- OverlayScreen mounts (
componentDidMount/useEffectruns) but nothing is visible. The scene window is stillRNNSplashScreenViewController.
Control: the same screen shown via setRoot appears correctly:
Navigation.setRoot({
root: {
stack: {
children: [{ component: { name: 'example.OverlayScreen' } }],
},
},
});
In what environment did this happen?
- react-native-navigation:
8.8.9 - react-native:
0.87(New Architecture / Fabric, bridgeless) - iOS: 26 / 27 (also repros conceptually on iOS 13+ with
UIScene) - Host:
RNNAppDelegate+ customUIWindowSceneDelegate - Platform: iOS only
- Ngôn ngữ chính
- MDX
- Star
- 13.2k
- Fork
- 2.6k
- Merge trung bình
- 2 ngày 10 giờ
- Pull request đã merge (30 ngày)
- 6
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của wix/react-native-navigation
-
needs triage triage: documentation
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
wix/react-native-navigation#8343 · 1 bình luận ·
-
[Fix] searchBar `focus:` true ignored on mergeOptions when searchController already existsCó thể đã có người làm @IsaacIsrael đã nhận 158 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
wix/react-native-navigation#8318 ·
-
Build Failed with RN 0.87Đang mởneeds triage type: accepted/bug
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 25/100
wix/react-native-navigation#8365 · 2 bình luận ·
-
platform: iOS type: accepted/bug
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
wix/react-native-navigation#8340 ·
-
platform: iOS type: accepted/bug
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
wix/react-native-navigation#8339 ·
Tất cả issue của wix/react-native-navigation
Issue tương tự
-
feature-request
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
bluesky-social/social-app#12343 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
documentation
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 73/100
patarapolw/lingua_srs#103 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
feat: 앱 정보에 개인정보처리방침과 고객지원 연결Có thể đã có người làm @xrpjwk8 đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
DeveloperAcademy-POSTECH/2026-C6-A13-Hear-I-am#120 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Bug
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 88/100
Maintainer thường phản hồi trong vòng 1 ngày