InteractivePopGestureRecognizer导致UITableViewController的UINavigationItem消失

时间:2018-09-07 14:12:04

标签: swift uinavigationcontroller uinavigationitem

在XCode 9.4中,使用Swift 4.1:

在我的主情节提要中,我有一个UITableViewController,它是通过“显示”情节提要启动的,该情节提要来自放置在嵌入了UINavigationController的UIViewController中的UIButton上,该UIViewController设置为初始视图控制器。 (UIViewController具有navigationController?.isNavigationBarHidden = true,因为我不希望显示UINavigationTitle。)

一切正常。单击UIButton将启动UITableViewController,它具有一个UINavigationItem(左侧带有默认的“ Back”(返回)按钮)。单击表中的任何单元格都可以正确地选择到辅助UIViewController,该UIViewController也具有UINavigationItem和“后退”按钮等。

不幸的是,如果用户开始-但未完成-在UITableViewController上滑动手势,则会导致UITableViewController的UINavigationItem(实际上是视图顶部的整个UINavigation区域)消失,这样可以有效地将用户“捕获”在该屏幕上,而无法返回到初始的UIViewController。

这是UITableViewController的viewDidLoad():

  override func viewDidLoad() {
    super.viewDidLoad()
    if #available(iOS 11.0, *) {
        navigationController?.navigationBar.prefersLargeTitles = false
    }

    self.title = "Types of Bananas"

    navigationController?.isNavigationBarHidden = false
    navigationController?.navigationBar.barTintColor = UIColor.brown
    navigationController?.navigationBar.tintColor = UIColor.white
 }

如果我添加      navigationController?.interactivePopGestureRecognizer?.isEnabled = false 到viewDidLoad(),它可以阻止问题的发生,但也可以防止滑动,我想保留此默认功能。

0 个答案:

没有答案