如何仅对UITabbarController禁用UINavigation滑动弹出手势?

我正在使用iOS应用程序,并且正在使用Swift 4.2和Xcode 10.3。

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

如何仅对UITabbarController禁用UINavigation滑动弹出手势?

流描述:

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

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

 override func viewWillAppear(_ animated: Bool) {

        self.navigationController?.interactivepopgestureRecognizer?.delegate = nil

}

此滑动手势导航弹出窗口工作正常,但我只想仅对选项卡栏控制器禁用它。当我向左滑动标签管理器时,将弹出显示“登录”和“注册”按钮的屏幕。

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

whj901180 回答:如何仅对UITabbarController禁用UINavigation滑动弹出手势?

您需要在所需的VC中禁用“ interactivePopGestureRecognizer”,以免使该可滑动项在viewDidLoad中添加此代码段

navigationController?.interactivePopGestureRecognizer?.isEnabled = false

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

启用它
navigationController?.interactivePopGestureRecognizer?.isEnabled = true

试试看!

本文链接:https://www.f2er.com/2943971.html

大家都在问