When I dismiss a popover and quickly try to navigate to another view by tapping a NavigationLink, both the current view's and the new view's bottom bars momentarily display on-top of each other.
Specifically, this only occurs if I first dismiss the popover by tapping outside of it, then tapping a link before the popover finishes it's dismissal animation. However, this does not happen if i directly tap a visible NavigationLink when the popover is open (weird).
This issue almost always happens when using a List with NavigationLinks inside it, where both toolbars appear momentarily. I assume this is because each row does not act as a button, and you inherently need to tap twice to navigate from a List.
Is this issue known, and are there workarounds? My current solution, in my own code, to not show this to users is by disabling the List when my popover is showing (….disabled(showSettings)
).
This code demonstrates my problem:
struct ListNavigationPopoverDuplicateBottomBar: View {
@State private var popover = false
var body: some View {
NavigationStack {
NavigationLink {
Text("").toolbar {
// new view's bottom bar item
ToolbarItem(placement: .bottomBar) { Text("Second toolbar") }
}
} label: {
Text("Link")
}
.toolbar {
ToolbarItem(placement: .topBarTrailing) {
// button to show popover. (same problem regardless if placed here or directly in the main view)
Button("Popover") {
popover = true
}
.popover(isPresented: $popover) {
Text("A popover")
}
}
ToolbarItem(placement: .bottomBar) {
// first bottom bar
Text("First toolbar")
}
}
}
}
}
Steps to reproduce:
- Open popover
- Tap empty space (do not tap the NavigationLink)
- Quickly tap the NavigationLink before the popover dismissal animation finishes
First post in this forum, please tell me if this is not the right place for this.
Hi @vladimirs , thanks so much for bringing this up, please create a feedback report at https://feedbackassistant.apple.com and post the FB number here. Your workaround is also what I would recommend to work around this right now :)