隐藏导航栏中的后退button,并使用Swift中的hBackButton

从一个视图切换到另一个视图时,我想隐藏后退button。 我阅读了关于这个问题的问题,每个答案都是“使用hidesBackButton ”。 这个问题是:

  • 当我把它放在viewDidLoad / viewWillAppear后退button箭头隐藏,但string“返回”不。

  • 当我把它放在viewDidAppear后退button消失,但它对用户可见

我怎样才能解决这个问题?

编辑:

这里是如何复制这个问题(或错误?)
在Xcode中使用Swift创build一个新的Tabbed应用程序。 在FirstViewController.swift中使用performSegueWithIdentifier导航到第二个视图控制器。 在SecondViewController.swift中使用hidesBackButton隐藏导航栏后退button,您将看到问题所在。

尝试添加这个:

 let backButton = UIBarButtonItem(title: "", style: UIBarButtonItemStyle.Plain, target: navigationController, action: nil) navigationItem.leftBarButtonItem = backButton 

用最新的Swift隐藏后退button:

 self.navigationItem.setHidesBackButton(true, animated: false) 

您可以使用下面的代码来隐藏UINavigationBarbutton。

Swift 3 ;

 override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) self.navigationItem.hidesBackButton = true } 
 override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. self.navigationController?.navigationBarHidden = false var button: UIButton = UIButton() button.setImage(UIImage(named: "person-icon.jpg"), forState: .Normal) button.frame = CGRectMake(0, 0, 25, 25) button.targetForAction("actioncall", withSender: nil) var rightItem:UIBarButtonItem = UIBarButtonItem() rightItem.customView = button self.navigationItem.rightBarButtonItem = rightItem let backButton = UIBarButtonItem(title: "", style: UIBarButtonItemStyle.Plain, target: navigationController, action: nil) navigationItem.leftBarButtonItem = backButton } override func viewWillAppear(animated: Bool) { let backButton = UIBarButtonItem(title: "", style: UIBarButtonItemStyle.Plain, target: navigationController, action: nil) navigationItem.leftBarButtonItem = backButton } 

尝试添加这个,这对我有效

 navigationItem.hidesBackButton = true 

这对我工作:

 override func viewWillAppear(animated: Bool) { super.viewWillAppear(animated) self.tabBarController?.navigationItem.hidesBackButton = true } 

这对我工作

 navigationController?.navigationBar.topItem?.hidesBackButton = true