网站项目风险,如何搭建网站平台,南宁软件优化网站,织梦摄影网站源码SwiftUI 隐藏返回按钮但保留右滑返回手势的方案
在 SwiftUI 中#xff0c;如果你使用#xff1a;
.navigationBarBackButtonHidden(true)可以隐藏系统返回按钮#xff0c;但会发现 右滑返回手势#xff08;边缘返回#xff09;失效了。
这是因为 SwiftUI 底层使用了 UI…SwiftUI 隐藏返回按钮但保留右滑返回手势的方案
在 SwiftUI 中如果你使用
.navigationBarBackButtonHidden(true)可以隐藏系统返回按钮但会发现 右滑返回手势边缘返回失效了。
这是因为 SwiftUI 底层使用了 UINavigationController隐藏返回按钮后系统默认禁用了手势。 ✅ 目标
隐藏系统返回按钮保留 iOS 原生右滑返回手势支持自定义返回按钮 解决方案
通过扩展 UINavigationController 恢复手势代理
Swift 5.9使用 retroactive
extension UINavigationController: retroactive UIGestureRecognizerDelegate {open override func viewDidLoad() {super.viewDidLoad()interactivePopGestureRecognizer?.delegate self}public func gestureRecognizerShouldBegin(_ gesture: UIGestureRecognizer) - Bool {return viewControllers.count 1}
}Swift 5.8 及以下
extension UINavigationController: UIGestureRecognizerDelegate {open override func viewDidLoad() {super.viewDidLoad()interactivePopGestureRecognizer?.delegate self}public func gestureRecognizerShouldBegin(_ gesture: UIGestureRecognizer) - Bool {return viewControllers.count 1}
}⚠️ 注意事项
使用方式是否影响右滑返回.navigationBarBackButtonHidden(true)✅ 可用需手动恢复.navigationBarHidden(true)❌ 禁用手势嵌套新的 NavigationStack❌ 禁用手势 ✅ 总结
如果你想在 SwiftUI 中
自定义返回按钮隐藏系统返回按钮保留右滑返回手势
使用上述方式扩展 UINavigationController 即可简单有效全局生效。 欢迎点赞、收藏、评论交流