在SwiftUI中,主视图Home添加一个监测点击的手势:
Home()
// 使用 simultaneousGesture 不阻止其他手势
.simultaneousGesture(
TapGesture()
.onEnded { _ in
// 手指抬起也重置
print("监测到操作:Touch Up")
})
Home的子视图,使用NavigationLink打开。当点击视图时,正常输出:
监测到操作:Touch Up
重制计时
如果点击导航返回按钮,正常输出信息,但是无法返回。

这个问题可能是导航返回按钮需要响应触摸手势,而Home视图添加了TapGesture手势,导致一个视图同时响应两个触摸操作,因此发生冲突。
解决方案为,在Window层级添加手势识别器,使用UITapGestureRecognizer检测触摸操作,相关内容请见《SwiftUI检测屏幕点击事件》。
相关文章
1、SwiftUI检测屏幕点击事件:https://fangjunyu.com/2025/11/28/swiftui%e6%a3%80%e6%b5%8b%e5%b1%8f%e5%b9%95%e7%82%b9%e5%87%bb%e4%ba%8b%e4%bb%b6/
2、NavigationLink 的 onTapGesture 和导航功能无法稳定触发:https://stackoverflow.com/questions/59040566/navigationlink-ontapgesture-and-navigation-not-firing-consistently
3、导航链接无法触发,真是令人困惑:https://www.reddit.com/r/SwiftUI/comments/ndrrqd/stumped_on_navigation_link_not_triggering/
