I've encountered the same issue and have filed a FB16488816.
Minimal code for this problem is:
import SwiftUI
struct ContentView: View {
var body: some View {
NavigationView {
List {
Button("Tap Me") {
print("Button action fired")
}
.simultaneousGesture(
TapGesture().onEnded {
print("Custom gesture fired")
}
)
}
.navigationTitle("Gesture Collision")
}
}
}
Expected Behaviour: Both print("Button action fired") and print("Custom gesture fired") should execute.
Actual Behaviour: Only the custom gesture fires. The button action is completely suppressed.
This also affects NavigationLink, breaking navigation when a tap gesture is attached.
If anyone has a workaround beyond using programmatic navigation or restructuring views, I'd love to hear it. Otherwise, I hope Apple acknowledges and addresses this soon.
Topic:
UI Frameworks
SubTopic:
SwiftUI
Tags: