Konfigurieren des backBarButtonItem des Navigationselements eines View Controllers in einem Storyboard

7

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?

    
warrenm 22.03.2012, 18:59
quelle

4 Antworten

18
  • 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.

  • Klicken Sie mit der rechten Maustaste auf das Navigationselement des Ansichtscontrollers im Hauptobjektbereich auf der linken Seite. Verbinden Sie die neu hinzugefügte Schaltfläche mit dem backBarButtonItem outlet des Navigationselements.

  • Wählen Sie die Schaltfläche "bar" aus und konfigurieren Sie sie auf beliebige Weise mit dem Attribut-Inspektor.

    
warrenm 27.03.2012, 17:07
quelle
16

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.

    
sumizome 08.12.2012 21:01
quelle
3

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.

  • Wählen Sie die übergeordnete VC
  • aus
  • Wählen Sie das Navigationselement
  • Öffnen Sie den Attribute-Inspektor
  • Legen Sie den Titel für die Zurück-Schaltfläche fest.
Leontien 05.10.2013 12:35
quelle
1

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%     
Marco 27.03.2012 06:46
quelle