Das Ziehen und Ablegen von Balkenschaltflächenelementen in die Navigationsleiste eines Ansichtscontrollers in einem Storyboard in Interface Builder ist einfach. Auf diese Weise können Sie die Ausgänge leftBarButtonItem
und rightBarButtonItem
des Navigationselements des View-Controllers festlegen. Aber es gibt auch einen backBarButtonItem
-Ausgang, und es ist überhaupt nicht offensichtlich, wie man ihn setzt. Wie kann ich ein benutzerdefiniertes Backbar-Button-Element mit dem Interface Builder festlegen?
Wählen Sie den View-Controller, dessen Navigationselemente Sie ändern möchten. Der schwarze Balken, der die Identität des Ansichtscontrollers anzeigt, ändert sich in ein ikonifiziertes Fach der referenzierten Objekte.
Ziehen Sie ein Element einer Balkenschaltfläche aus der Objektbibliothek in das Fach und legen Sie es dort ab.
backBarButtonItem
outlet des Navigationselements.
Wie bereits bei @wcochran oben erwähnt, ist der backBarButtonItem-Ausgang beim Arbeiten mit viewControllern, die auf den Stack eines navigationControllers geschoben wurden, bereits verdrahtet und kann nicht geändert werden. Darüber hinaus funktioniert das Auswählen des navigationItem des untergeordneten VC und das Ändern des Back Button-Texts in IB nicht, was Sie erwarten würden.
Nun könnte man meinen, dass das Ersetzen des BackBarButtonItem des untergeordneten VC das Problem lösen würde, aber nicht. Wenn Sie den Titel der Zurück-Schaltfläche eines untergeordneten VCs festlegen möchten, müssen Sie den Titel des Zurück-Buttons seines übergeordneten Elements (!) Wie folgt festlegen:
%Vor%Dies wird nichts auf dem übergeordneten VC tun. In der Tat, wenn das übergeordnete Element der RootViewController des navigationControllers ist, wird es überhaupt keine Zurück-Schaltfläche geben. Aber das Kind wird den von Ihnen erstellten Zurück-Button erben (oder abholen).
Dies gilt nur für den unmittelbaren untergeordneten VC. Wenn Sie also das Label über den Stack des navigationControllers beibehalten möchten, müssen Sie es auf jedem übergeordneten Element festlegen.
Danke an @wiliz in #iphonedev für die Erklärung.
Wie oben bei @AdamBlock angegeben, müssen Sie die Dinge im übergeordneten VC richtig einstellen.
Er zeigt, wie man das programmatisch macht. Dies ist auch im Interface Builder möglich.
Im Interface Builder können Sie den Titel der Schaltfläche "Zurück" des Navigationselements ändern.
Programmgesteuert können Sie in der ViewDidLoad-Methode des View-Controllers eine benutzerdefinierte Zurück-Schaltfläche festlegen. In diesem Beispiel setzen wir das Bild der Schaltfläche auf ein Bild namens "customImage.png":
%Vor%Tags und Links interface-builder uibarbuttonitem uistoryboard uinavigationitem