Mathis Delaunay
Mathis Delaunay

Reputation: 191

Change back button of navigation controller

I have this code :

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) 
{
        let controller = SectionsController()
        self.navigationController?.pushViewController(controller, animated: true)
}

In my class :

class HomeController: UITabBarController,UITableViewDataSource,UITableViewDelegate, AddingProtocoleDelegate 

And i want to change the back button title to "Back"

I've tried this in the sectionController viewDidLoad :

        self.navigationItem.backBarButtonItem?.title = "Back"
        self.navigationController?.navigationBar.backItem?.title = "Back"
        self.navigationController?.navigationItem.title = "Back"
        let backButton = UIBarButtonItem(
            title: "Back",
            style: UIBarButtonItemStyle.plain,
            target: nil,
            action: nil
        );
        self.navigationController?.navigationBar.topItem?.backBarButtonItem = backButton;

But any solutions didn't work.

Help please.

Upvotes: 1

Views: 5198

Answers (2)

George
George

Reputation: 768

The back button belongs to the previous view controller, not the one currently presented on screen. Try this and see if it works for you.

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
let backItem = UIBarButtonItem()
backItem.title = "Back"
navigationItem.backBarButtonItem = backItem
}

Swift 3:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let backItem = UIBarButtonItem()
backItem.title = "Back"
navigationItem.backBarButtonItem = backItem
}

Upvotes: 1

user7649191
user7649191

Reputation:

use this self.navigationItem.leftBarButtonItem = backButton

Upvotes: 1

Related Questions