2016-08-11 2 views
2

Kann mir bitte jemand wissen, wie man die bar-Schaltfläche namens "Speichern" in "update" in der Ansicht Controller während der Aktualisierung der Daten in der Tabellenansicht Controller konvertieren. Ich verwende ios 9, xcode 7.3 und swift 2.2.So ändern Sie den Namen der bar-Taste dynamisch

Ich stelle den Beispielcode für die Schaltfläche bar.

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

    } 

Antwort

1

ändern Titel wie dies in Ihrem viewDidLoad

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

Ich habe versucht, es aber bekam den Fehler als bool kann nicht verwendet werden, wie boolean –

+0

Überprüfen Sie die bearbeitete Antwort. –

+0

Sie haben Ihren boolean mit optionalem Wrapping erstellt, also ändern Sie entweder Ihre Deklaration von boolean wie 'var isUpdate = false' oder verwenden Sie '== true' mit Ihrer if-Bedingung. –

2

du in der viewDidLoad() Methode machen könnte:

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

Ich habe den Fehler als, aber optionale Typ "()" kann nicht als boolean verwendet werden –

+0

Deklarieren Sie Ihren boolean als var isUpdate: Bool = false und versuchen Sie es erneut –

Verwandte Themen