How to change the title of the "back" bar button item?
10,960
Solution 1
Try to override previous screen segue
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
let backItem = UIBarButtonItem()
backItem.title = "My title"
navigationItem.backBarButtonItem = backItem
}
Solution 2
You can also change it from storyboard by changing the back button property in the navigation item of the previous view controller as follows:
Solution 3
In child view this worked for me;
self.navigationController!.navigationBar.topItem!.title = "Back"
Author by
Swift Everyday
Updated on June 16, 2022Comments
-
Swift Everyday almost 2 years
I want to change the "Root View Controller" back button to "Back" without changing the title of the Root View Controller.
I have tried these 3 code but all of them do not work.
navigationItem.backBarButtonItem?.title = "Back" navigationItem.leftBarButtonItem?.title = "Back" navigationItem.backBarButtonItem?.title = "Back"
May I know what am I doing wrong? Thanks in advance.
Here is the code of the whole method for your reference:
override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. navigationItem.backBarButtonItem?.title = "Back" navigationItem.leftBarButtonItem?.title = "Back" manager = CLLocationManager() manager.delegate = self manager.desiredAccuracy = kCLLocationAccuracyBest if activePlace == -1 { manager.requestWhenInUseAuthorization() manager.startUpdatingLocation() } else { // print( "String(myvar3.dynamicType) -> \(places[activePlace]["lat"].dynamicType)") let latitude = Double(places[activePlace]["lat"]!) let longitude = Double(places[activePlace]["lon"]!) //creating map region and annotation createMapRegionAndAnnotation(latitude!, longitude: longitude!) print(latitude) }
-
Swift Everyday over 8 yearsHi may I know why does this not work?
navigationItem.backBarButtonItem?.title = "Button"
Thank you for your help -
Oleg Gordiichuk over 8 years@TeeMingWei If you are setting the back button for the current view controller's navigation item you are not setting the button that get's displayed in the current view. You are in fact setting the back button that will be used if you push another view controller from it.
-
Swift Everyday over 8 yearsThanks for your help. I just tried it out and it works too
-
Gargo about 5 years1)doesn't work at all; 2)overriding
prepareForSegue
without of callingsuper.prepareForSegue
is incorrect -
Gargo about 5 yearsit overwrites the title of the previous screen