ändern Ich versuche, die linke nav bar-Schaltfläche Element in ViewWillAppear ändern (das Element muss hin und her geändert werden, damit viewDidLoad nicht funktioniert). Ich habe den folgenden Code in viewWillAppear:nav bar item programmatically in Swift
// There is a diff 'left bar button item' defined in storyboard. I'm trying to replace it with this new one
var refreshButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Refresh, target: self, action: {})
self.navigationController.navigationItem.leftBarButtonItem = refreshButton
// title and color of nav bar can be successfully changed
self.navigationController.navigationBar.barTintColor = UIColor.greenColor()
self.title = "Search result"
Ich verwendet Debugger, um sicherzustellen, dass jede Zeile ausgeführt wird. Aber das 'leftBarButtonItem' wurde nicht aktualisiert. Nav-Bar-Zeug wurde jedoch erfolgreich aktualisiert. Ich habe jetzt keine Bewegung mehr. Ideen? Vielen Dank!
Sie treffen nur den Nagel auf den Kopf. 'navigationItem.leftBarButtonItem' ist der richtige Weg. Danke vielmals! –
Sie wollen das wahrscheinlich nicht in 'viewWillAppear' machen, es wird jedes Mal aufgerufen, wenn der VC präsentiert wird - etwas wie' viewDidLoad' würde besser passen. – Zorayr
@Zorayr: Du hast vollkommen recht. Die Frage "viewWillAppear" aber "viewDidLoad" ist definitiv ein besserer Platz für diesen Code. Code aktualisiert –