setHidesBackButton不起作用

时间:2018-07-09 20:02:36

标签: ios swift uinavigationcontroller

在我的viewDidLoad中,我有以下代码隐藏后退按钮。但是,在实施后,这会禁用我选择搜索的链中的其他View Controllers的后退按钮。我不确定,但这可能与我构建应用程序的方式有关(请参见图片-请注意,最左侧的Navigation Controller已连接到Tab Bar Controller)。

// Removes back button
self.tabBarController?.navigationItem.hidesBackButton = true
self.tabBarController?.navigationItem.setHidesBackButton(true, animated: false)
self.tabBarController?.navigationItem.leftBarButtonItem = nil

我也尝试了以下代码,但是效果不佳。

self.navigationItem.leftBarButtonItem = nil
self.navigationController?.navigationItem.leftBarButtonItem = nil
navigationItem.setLeftBarButton(nil, animated: false)
self.navigationItem.setLeftBarButton(nil, animated: false)
self.tabBarController?.navigationItem.leftBarButtonItem = nil
self.tabBarController?.navigationItem.setLeftBarButton(nil, animated: false)
self.navigationController?.navigationBar.topItem?.leftBarButtonItem = nil

enter image description here

2 个答案:

答案 0 :(得分:1)

如果只想隐藏当前屏幕上的后退按钮,则只应清除leftBarButtonItem。如果您也隐藏backBarButtonItem,则将其应用于下一个屏幕的navigationItem。这有帮助吗?

答案 1 :(得分:0)

尝试

self.parent?.navigationItem.setHidesBackButton(真,动画:假)

有时viewController在没有self.parent的情况下无法识别其导航控制器