I want to hide the back button when transitioning from one view to another. I read the questions regarding this problem and every answer was "use hidesBackButton
". The problem with this is:
How can I fix this?
Edit:
Here is how you can replicate this problem(or bug?)
Make a new Tabbed application with Swift in Xcode. In the FirstViewController.swift use performSegueWithIdentifier to navigate to the second view controller. In the SecondViewController.swift hide the navigation bar back button using hidesBackButton and you will see what the problem is.
Try adding this:
let backButton = UIBarButtonItem(title: "", style: .Plain, target: navigationController, action: nil)
navigationItem.leftBarButtonItem = backButton
To hide the back button with the latest Swift:
self.navigationItem.setHidesBackButton(true, animated: false)
You can use the code below to hide back button on UINavigationBar
.
Swift 3;
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationItem.hidesBackButton = true
}
this worked for me
navigationController?.navigationBar.topItem?.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
}
Try adding this,This worked for me
navigationItem.hidesBackButton = true
This worked for me:
override func viewWillAppear(animated: Bool)
{
super.viewWillAppear(animated)
self.tabBarController?.navigationItem.hidesBackButton = true
}
Worked for me when I set it in init(), instead of viewDidLoad. Strange though