Reputation: 191
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
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