2016-08-11 6 views
2

Может кто-нибудь, пожалуйста, дайте мне знать, как преобразовать элемент кнопки панели, названный как «сохранить», чтобы «обновить» контроллер вида, обновляя данные в контроллере табличного представления. Я использую ios 9, xcode 7.3 и swift 2.2.Как изменить имя кнопки бара динамически

Я предоставляю образец кода для кнопки бара.

@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)") 
     } 

    } 

ответ

1

Изменить название, как это в вашей viewDidLoad

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

Я пробовал, но получил ошибку как BOOL не может быть использован в качестве boolean –

+0

Проверьте отредактированный ответ. –

+0

Вы создали свое логическое значение с необязательной упаковкой, чтобы либо изменить свое объявление логического типа, как «var isUpdate = false», либо использовать '== true' с вашим условием if. –

2

Вы могли бы сделать это в viewDidLoad() метод:

if let item = self.navigationItem.rightBarButtonItem { 
     item.title = isUpdate ? "Update" : "Save" 
} 
+0

У меня есть ошибка, так как необязательный тип "()" не может использоваться как boolean –

+0

Объявите свое логическое значение как var isUpdate: Bool = false и повторите попытку –