Benutzerdefinierte Schaltfläche "zurück" in UINavigationController
Für eine Anwendung, die ich entwickle, brauche ich anzeigen, um eine benutzerdefinierte Schaltfläche "zurück" in die Navigationsleiste. Ich habe den button Vermögenswert als ein PNG-Bild, und ich Schreibe diesen code:
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom];
backButton.frame = CGRectMake(0, 0, 79, 29.0);
[backButton setImage:[UIImage imageNamed:@"button_back.png"] forState:UIControlStateNormal];
self.navigationItem.backBarButtonItem = [[[UIBarButtonItem alloc] initWithCustomView:backButton] autorelease];
}
Wenn ich drücken Sie die view-controller, der die benutzerdefinierte Schaltfläche nicht erscheint, und stattdessen bekomme ich die standard-zurück-button mit dem Titel dieses view-controller im inneren.
Dinge, die ich bereits ausprobiert:
- Verdoppelt, überprüfen Sie, dass die Schaltfläche
backButton
ist ordentlich erstellt, indem es der view-Hierarchie. Es zeigt richtig. - In der gleichen Methode, änderte sich die
title
Eigenschaft desnavigationItem
und bestätigt, dass es änderungen (wie erwartet) der Inhalt der von mir zurück-Taste.
Kann jeder spot, was ich falsch mache? Hat jemand gelingt, mit einem benutzerdefinierten Bild als Schaltfläche "zurück" auf eine UINavigationController
?
InformationsquelleAutor der Frage pgb | 2010-08-17
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beginnend mit iOS 5, das ist einfach:
Können Sie in Ihrer app delegieren, und es wird das Hintergrundbild für alle zurück-buttons in der app (für die, die Steuern, Staat und bar Metriken, natürlich).
InformationsquelleAutor der Antwort Matías R
Ich bin Umbuchung meine Lösung aus https://stackoverflow.com/a/16831482/171933:
Erstelle ich eine einfache Kategorie
UIViewController
:UIViewController+ImageBackButton.h
UIViewController+ImageBackButton.m
Alles was Sie jetzt tun müssen, ist
#import UIViewController+ImageBackButton.h
entweder alle Ihre view-Controller oder in einem benutzerdefinierten Basis-view-controller-Klasse, dass Ihr anderen view-Controller Erben und implementieren dieviewWillAppear:
Methode:Das ist alles. Jetzt haben Sie ein Bild zurück-Taste überall. Ohne eine Grenze. Genießen Sie!
InformationsquelleAutor der Antwort Johannes Fahrenkrug
Den
backBarButtonItem
- Eigenschaft funktioniert wie vorgesehen, aber es wird immer auf den standard-button, Form und Farbe beruhen auf der Navigationsleiste Ihre Farbe.Können Sie passen Sie den text an, aber nicht ersetzen, das Bild.
Einen workaround, wie Andrew Pouliot vorgeschlagen, ist die Verwendung
leftBarButtonItem
anstelle, aber ich blieb auf die Schaltfläche "standard" statt.InformationsquelleAutor der Antwort pgb
Ist nicht die einfachste Lösung, nur das design von Ihrem storyboard mit dem, was Bild oder Farben, die Sie wollen, und ziehen Sie einfach eine neue Aktion, um Ihren controller?
Swift-Code
InformationsquelleAutor der Antwort vladCovaliov
Verwirrend
backBarButtonItem
ist nicht, was Sie suchen.Es nur steuert der Titel auf die Schaltfläche zurück, für den nächsten view-controller. Was Sie wollen ist, um die
leftBarButtonItem
um Ihre benutzerdefinierte Schaltfläche "zurück".InformationsquelleAutor der Antwort Andrew Pouliot
Finden Sie unter dieser Antwort hier: Wie erstellen backBarButtomItem mit benutzerdefinierten Ansicht für einen UINavigationController
Brauchen Sie nur legen Sie die
backBarButtonItem
- Eigenschaft auf den navigationController vor drücken der viewController. Einstellung derbackBarButtonItem
Eigenschaft in der viewController istviewDidLoad
Methode (zum Beispiel) nicht funktioniert.InformationsquelleAutor der Antwort SundayMonday
Ich glaube nicht, dass der ViewController soll selbst wissen nichts über Ihre zurück-Taste
Nach OOP-das liegt in der Verantwortung der containerViewController, in dem Sie Ihre view-controller eingefügt wird, z.B. UINavigationController.
Unterklasse Ihre NavigationController und überlastung im it-superClass-Methode wie diese:
InformationsquelleAutor der Antwort Nikolay Shubenkov
Johannes Fahrenkrug Antwort funktioniert, aber der zurück-Bild erscheinen würde, in einer sehr kabelgebundenes position.
Hier fand ich einen besseren Weg, um das Bild zu positionieren an der richtigen Stelle:
Stellen Sie Sicher, Sie Haben wieder ein Bild mit der Größe 24x24(@1x) , ich nenne es
backImage
Führen Sie den folgenden code, wenn Sie Ihre app-Start
InformationsquelleAutor der Antwort duan
Erstellen Sie einfach eine
UIBarButtonItem
statt eines eingebettetenUIButton
imUIBarButtonItem
. Funktioniert einwandfrei!InformationsquelleAutor der Antwort romrom
Als @pgb vorgeschlagen, die Sie verwenden können, leftBarButtonItem statt der zurück-Taste Element. Und zum entfernen der Standard-zurück-button-Element setzen Sie ihn auf null, wie folgt;
InformationsquelleAutor der Antwort Ammar Mujeeb