此问题出现在ios 9和ios 10上。 当我显示一个navigationviewController时,backBarButtonItem无法隐藏,但是在超类中我对此进行了设置
override func pushViewController(_ viewController: UIViewController, animated: Bool) {
super.pushViewController(viewController, animated: animated)
viewController.navigationItem.setHidesBackButton(true, animated: false)
let backItem = UIBarButtonItem(image: UIImage(named: "navigationItem_back_img"), style: .plain, target: self, action: #selector(backItemOnClick(_:)))
backItem.title = ""
viewController.navigationItem.leftBarButtonItem = backItem
}
当我按下这个NavigationViewController时,我没遇到这个问题
答案 0 :(得分:3)
将此行 items: [
{
label: 'Add New Vehicle', icon: 'fa fa-refresh',
command: () => {
let user = new User();
this._userService.setter(user);
this.router.navigate(['/op']);
}
},
{ label: 'Show All', icon: 'fa fa-repeat', url: '#' }
]
添加到要隐藏后退按钮项的视图控制器的viewDidLoad()中。
答案 1 :(得分:0)
在viewDidLoad()
或viewWillAppear()
中添加以下行:
self.navigationItem.hidesBackButton = true
或
self.navigationItem.setHidesBackButton(true, animated: false)
答案 2 :(得分:0)
我建议使用任何其他技术来显示viewController,而不是将其推入导航控制器中。它会隐藏“后退”按钮,也可以在从主ViewController达到目的后轻松将其关闭。以模态形式使用present或以popover形式出现,然后在工作后将其关闭。 如果您不愿意这样做,那么我认为上述答案将对您有用。但是我对您的问题的建议将以不同的方式呈现视图控制器,这也将有助于保持代码的清洁和更易理解。 如果您想讨论或了解我的方法,请留言。