We encounter an issue where the nested each NavigationStack
within a NavigationSplitView
is bound to a different path but the bound path isn't honored in a way that we would expect.
In this sample app there are 4 routes:
- Inbox/Inbox (path root)
- Inbox/Message
- Outbox/Outbox (path root)
- Outbox/Message
The NavigationRouter
is responsible for updating state such that:
- the
NavigationSplitView
sidebar is bound to category - the
NavigationStack
path is bound to 2 different paths, depending on which sidebar category is selected.
We encounter an issue when we want to change routes:
[Inbox/Message] -> [Outbox/Message]
(note the change to a path where depth is deeper than root)
Brings us to a route destination in the UI:
[Outbox/Outbox]
(note the change is made but the UI is at root)
What appears to be happening is that the NavigationSplitView
:
- honors the category change is honored in the sidebar
- actively sets the current bound navigation path to an empty path:
[]
- does not honor the newly bound destination path at depth
Does anyone know how we would be able to achieve what is being described above? I fear I will have to write a UIKit wrapper for what should seemingly be possible with the code supplied here.
Here is a link to a gist demonstrating a full repro case.