Guru Teja Guru Teja - 3 months ago 8
iOS Question

how to Change the name of bar button dynamically

Can anyone please let me know how to convert the bar button item named as "save" to "update" in view controller while updating the data in table view controller.
I am using ios 9, xcode 7.3 and swift 2.2.

I am providing the sample code for the bar button.

@IBAction func save(sender: UIBarButtonItem) {

//func Plus(sender: AnyObject) {

if isUpdate == true{
print("object id \(self.store?.objectID)")
self.store?.sTitle = titlename.text
self.store?.sNote = note.text
//save.setTitle("my text here", forState: .Normal)
let img = UIImage(named: "image.jpg")
let imgData = UIImageJPEGRepresentation(img!,1)
self.store?.sImage = imgData
do {
try appdelegate.managedObjectContext.save()
self.navigationController?.popViewControllerAnimated(true)
} catch let error as NSError {
print("Could not save \(error), \(error.userInfo)")
}

}else{
//get the description of the entity
let storeDescription = NSEntityDescription.entityForName("Store",inManagedObjectContext: appdelegate.managedObjectContext)

//we create managed object to be inserted to core data
let store = EventsandnotesStore(entity : storeDescription!,insertIntoManagedObjectContext:appdelegate.managedObjectContext)
store.sTitle = titlename.text
store.sNote = note.text

let img = UIImage(named: "image.jpg")
let imgData = UIImageJPEGRepresentation(img!,1)

store.sImage = imgData
do {
try appdelegate.managedObjectContext.save()
self.navigationController?.popViewControllerAnimated(true)
} catch let error as NSError {
print("Could not save \(error), \(error.userInfo)")
}

}

Answer

Change title like this in your viewDidLoad

if (isUpdate == true) {
    let item = self.navigationItem.rightBarButtonItem
    item?.title = "Update"
}