【问题标题】:How to disable UINavigation swipe pop gesture only for UITabbarController?如何仅为 UITabbarController 禁用 UINavigation 滑动弹出手势?
【发布时间】:2020-04-04 10:20:57
【问题描述】:

我正在开发 iOS 应用程序,我使用的是 Swift 4.2 和 Xcode 10.3。

我必须启用滑动手势才能在UINavigationController 中弹出UIViewController,这是我的应用程序屏幕流程:

流程说明:

  • 我正在使用UINavigationController 并且启动画面在rootViewController 上。
  • 在闪屏 3 秒后,我正在推送用户可以注册和登录的屏幕。
  • 登录或注册后我推送UITabbarController
  • tabBarController 中有四个标签栏,每个标签栏都包含navigationController
  • 要打开购物车屏幕,我也从UITabbarController 推送它。
  • 在购物车屏幕后,我正在推送付款屏幕。

我正在使用以下代码通过滑动手势启用屏幕弹出。 我在启动画面中添加了这一行:

 override func viewWillAppear(_ animated: Bool) {

        self.navigationController?.interactivePopGestureRecognizer?.delegate = nil

}

此滑动手势导航弹出运行正常,但我只想禁用它仅用于标签栏控制器。当我向左滑动到选项卡控制器时,它会弹出我们显示“登录”和“注册”按钮的屏幕。

所以我的问题是如何禁用导航堆栈中某些屏幕的滑动手势弹出。

【问题讨论】:

  • self.navigationController?.interactivePopGestureRecognizer?.isEnabled = false

标签: ios swift uinavigationcontroller uitabbarcontroller uiswipegesturerecognizer


【解决方案1】:

您需要在所需的 VC 中禁用“interactivePopGestureRecognizer”,以免滑动可在 viewDidLoad 中添加此 sn-p

navigationController?.interactivePopGestureRecognizer?.isEnabled = false

如果你想在其他 VC 中启用,请确保使用 -

navigationController?.interactivePopGestureRecognizer?.isEnabled = true

试一试!

【讨论】:

    猜你喜欢
    • 2014-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多