`showOverlay` creates a scene-less `UIWindow`, so overlays never appear under UIScene lifecycle
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 68/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- ios, react-native
- Ambito
- mobile
Direzione di ricerca
Inizia dall’implementazione nativa di Navigation.showOverlay e RNNOverlayWindow, in particolare dal percorso initWithFrame:, e confrontala con la gestione esistente di _mainWindow utilizzata da setRoot. Riproduci il problema con un UIWindowSceneDelegate e verifica che la finestra di overlay sia associata alla UIWindowScene host. È completato quando showOverlay appare sopra il root corrente, mentre il comportamento esistente di setRoot rimane invariato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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
- Lingua principale
- MDX
- Stelle
- 13.2k
- Fork
- 2.6k
- Merge medio
- 2g 10h
- PR unite (30g)
- 6
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di wix/react-native-navigation
-
needs triage triage: documentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
wix/react-native-navigation#8343 · 1 commento ·
-
[Fix] searchBar `focus:` true ignored on mergeOptions when searchController already existsForse già presa @IsaacIsrael l’ha presa 157 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
wix/react-native-navigation#8318 ·
-
Build Failed with RN 0.87Apertaneeds triage type: accepted/bug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
wix/react-native-navigation#8365 · 2 commenti ·
-
platform: iOS type: accepted/bug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
wix/react-native-navigation#8340 ·
-
platform: iOS type: accepted/bug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
wix/react-native-navigation#8339 ·
Tutte le issue di wix/react-native-navigation
Issue simili
-
needs-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
nightscout/Trio#1741 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
alexandrereol/ethmensa#30 ·
-
area::auth
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
linagora/twake-on-matrix#3579 · 1 commento · 1 reazione ·
I maintainer di solito rispondono entro 3 giorni
-
auto-implement
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
bannzai/medicalarm#522 ·
I maintainer di solito rispondono entro 1 giorno