swift - 在 SwiftUI 中隐藏导航栏而不会丢失向后滑动手势
问题描述
在 SwiftUI 中,每当隐藏导航栏时,滑动返回手势也会被禁用。
有什么方法可以隐藏导航栏,同时保留 SwiftUI 中的向后滑动手势?我已经有一个自定义的“返回”按钮,但仍然需要手势。
我已经看到了一些 UIKit 的解决方案,但仍然不知道如何在 SwiftUI 中做到这一点
这是您自己尝试的代码:
import SwiftUI
struct RootView: View {
var body: some View {
NavigationView {
NavigationLink(destination: SecondView()) {
Text("Go to second view")
}
}
}
}
struct SecondView: View {
var body: some View{
Text("As you can see, swipe to go back will not work")
.navigationBarTitle("")
.navigationBarHidden(true)
}
}
非常感谢任何建议或解决方案
解决方案
这应该通过扩展来工作UINavigationController
。
extension UINavigationController: UIGestureRecognizerDelegate {
override open func viewDidLoad() {
super.viewDidLoad()
interactivePopGestureRecognizer?.delegate = self
}
public func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
return viewControllers.count > 1
}
}
推荐阅读
- ios - SwiftUIpresentationMode:检查视图是否由工作表呈现
- mongodb - 如何解释 mongo 解释和改进地理空间查询的结果?
- php - 如何禁用 WordPress 的小部件块编辑器?
- griddb - 如何修复 GridDB 中的删除行问题
- python - 检测图像 Python 的像素化组件
- javascript - 在反应中动态地在包组件中添加html元素
- python - 神经网络中的预测极限或区间
- ios - 我想在我的小部件(IOS)中显示数组的元素
- c++ - 此 C++ 示例代码是否包含数据竞赛?
- excel - 如何将公式应用于唯一具有 vba 值的单元格?