gpt4 book ai didi

ios - 滑动以返回特定的 SwiftUI View

转载 作者:行者123 更新时间:2023-12-05 05:42:00 26 4
gpt4 key购买 nike

在我的 SwiftUI 应用程序中,我在所有 View .navigationBarBackButtonHidden(true) 中设置了一个自定义后退按钮,因此 iOS 经典滑动返回已在所有地方被禁用,但我实际上仅在特定 View 中需要它。

我使用这段代码重新启用它:

extension UINavigationController: UIGestureRecognizerDelegate {
override open func viewDidLoad() {
super.viewDidLoad()
interactivePopGestureRecognizer?.delegate = self
}

public func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
return viewControllers.count > 1
}
}

它可以工作,但不幸的是它重新启用了在整个项目中滑动返回,我该怎么办?

最佳答案

它可以通过一些全局应用程序状态进行管理,例如

class AppState {
static let shared = AppState()

var swipeEnabled = false // << by default
}

extension UINavigationController: UIGestureRecognizerDelegate {
// ...

public func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
return AppState.shared.swipeEnabled ?
viewControllers.count > 1 : false // << here !!
}
}

// ... and somewhere in view, for example
.onAppear {
AppState.shared.swipeEnabled = true
}
.onDisappear {
AppState.shared.swipeEnabled = false
}

关于ios - 滑动以返回特定的 SwiftUI View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72165541/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com