【发布时间】: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