Comments (4)
I can attest to that. I couldn't find out what is going on until I discovered this issue. It doesn't have to be presented with fullScreen
btw.
Personally,
- I have a root view
@Root var home = makeHome
which navigates to aWithdraw
view with thepush
mechanism. - The second view
@Route(.push) var withdraw = makeWithdraw
has a button that opens the address scanner screen (A screen that scans for QR codes with camera)@Route(.push) var addressScanner = makeAddressScanner
. - When this screen appears, I request for
AVCaptureDevice.requestAccess(for: .video)
video permission, which, pops both address scanner view, and the withdraw view until it navigates back to the home view. - At this point the system's dialog is still visible, but my app's top view is
home
.
As @PeterKovacs89 mentions the internal func appear(_ int: Int)
is called with int = -1
.
from stinsen.
Tricky issue to fix honestly. Perhaps a way to temporarily suspend the appear-function would work? 🤔
from stinsen.
95% related to iOS16 new NavigationStack thing, getting the same symptoms with Bluetooth pairing request - it breaks the navigation, exactly when the system alert window appears.
from stinsen.
Hello,
I've got yesterday into this issue and started to debug it. I found what was causing this behavior, in my case I had a navigation drawer that was wrapping the content and inside I had a GeometryReader
around the whole drawer, and when presenting alerts or keyboard is showing, that GeometryReader
had to rerender it's children and thus the entire stack was popping to root each time because all the main content was inside of it.
I moved the content view in the drawer out of GeometryReader
and it worked as expected. In your case it might not be a GeometryReader
but the idea is that when presenting default alerts or keyboard, it may trigger a rerender somewhere in the begining of stack.
Another way that can help you with this is to conform views to Equatable
and let SwiftUI
know if the view needs to be rerendered or not, but this will not help in cases like mine because GeometryReader
will rerender if something triggers it.
Hope this will help.
from stinsen.
Related Issues (20)
- PopToRoot shows second view while transitioning from third to first view HOT 6
- How can I get access to a stack during popToRoot
- Problem with .push transition. HOT 2
- Can't I use onDismiss in route method? HOT 1
- Dismissing item issue HOT 2
- Exclude screens during deeplink HOT 1
- Issues caused by use of SwiftUI's NavigationStack HOT 2
- Can't get NavigationRouter via protocol
- Tabbar items customisation HOT 2
- dismissCoordinator animation
- dismissChild fatal optional
- How to correctly use focusFirst HOT 1
- Example just don't work
- Tabbar Item Accent Color Not working
- Presentation detents for sheets
- Memory leaks in iOS17 HOT 5
- How do I know which route I am in?
- Custom back button modifier HOT 1
- Poplast didn't work as expected
- Pops back when updating @ObservableObject
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from stinsen.