Wie entferne ich den Text der Zurück-Schaltfläche?
Aktuelle Zurück-Taste:
<Zurück
Gewünschter Zurück-Button:
<Alles andere
Keines davon hat funktioniert:
self.navigationItem.backBarButtonItem?.title = "Back"
self.backItem?.title = ""
self.navigationController?.navigationBar.backItem?.title = ""
self.navigationItem.backBarButtonItem?.title = ""
self.navigationController?.navigationItem.backBarButtonItem?.title="Back"
self.navigationController?.navigationBar.backItem?.title = ""
self.navigationController?.navigationItem.backBarButtonItem?.title
ios
objective-c
swift
Onichan
quelle
quelle
title
Änderungen wird der Titel geändert , nicht nur die Zurück-Schaltfläche.Sie können dies vom Interface Builder aus wie folgt tun:
Klicken Sie auf das Navigationselement des vorherigen Ansichtscontrollers
Stellen Sie im Attributinspektor den Text der Zurück-Schaltfläche auf den gewünschten Wert ein. Das ist es!!
quelle
Der Text der Zurück-Schaltfläche wird aus dem Titel des Navigationselements des übergeordneten View-Controllers übernommen. Was auch immer Sie im Titel des Navigationselements des vorherigen View-Controllers festgelegt haben, wird im Text der Zurück-Schaltfläche des aktuellen View-Controllers angezeigt. Sie können einfach "" als Titel für das Navigationselement in die viewWillAppear-Methode des übergeordneten View-Controllers einfügen.
Ein anderer Weg ist zu setzen
in der viewWillAppear-Methode des aktuellen View Controllers. Dieser verursacht ein anderes Problem, wenn der Navigationsstapel zu verschachtelt ist.
quelle
prepareForSegue
, was ist. ein wenig sauberer, weil Sie den neuen viewController nach dem Laden nicht ändern.Sie können diese 3 Codezeilen in das
ViewController
Feld einfügen, in dem Sie den Titel der Zurück-Schaltfläche ändern möchten.In deinem
override func viewDidLoad() {}
.quelle
Wenn Sie die xib-Datei für den View Controller verwenden, tun Sie dies in Ihrer View Controller-Klasse.
Das Ergebnis wird sein:
quelle
Ich weiß nicht, wo Sie Ihre Methoden verwendet haben, die Sie auf Ihre Frage gestellt haben, aber ich könnte das gewünschte Ergebnis erzielen, wenn ich für meine
ViewController
Klasse (in der ich den Zurück-Button ändern möchte) für dieviewDidLoad()
Funktion die folgende Zeile verwende:Das Ergebnis wird sein:
Vor
Nach dem
quelle
navigationController.navigationBar.topItem?.title = ""
stattdessen, um dies nicht zu vermeidenviewDidAppear
Die Zurück-Schaltfläche gehört zum vorherigen Ansichts-Controller und nicht zu dem aktuell auf dem Bildschirm angezeigten. Fügen Sie viewdidload hinzu, um die Zurück-Schaltfläche zu ändern, bevor Sie sie drücken.
Swift 4:
quelle
Sie können das Navigationselement einfach im Storyboard ändern
Fügen Sie im Zurück-Button ein Leerzeichen hinzu und drücken Sie die Eingabetaste.
quelle
Swift 4 - Konfigurieren Sie die Zurück-Taste, bevor Sie einen View Controller drücken
quelle
Das sollte funktionieren:
Dies wird zwar nicht empfohlen, da dies tatsächlich den backButton ersetzt und auch den Zurückpfeil und die Wischgeste entfernt.
quelle
Swift 4.2
Wenn Sie den Elementtext der Navigationsleiste für die Schaltfläche "Zurück" ändern möchten, geben Sie diesen in
viewDidLoad
den Controller ein, bevor der Text angezeigt wird, in dem die Schaltfläche "Zurück" angezeigt wird, NICHT in der Ansichtssteuerung, in der die Schaltfläche "Zurück" sichtbar ist.Wenn Sie den aktuellen Titeltext der Navigationsleiste ändern möchten, verwenden Sie den folgenden Code (beachten Sie, dass dies der Standardrücktext für die nächste Ansicht ist, die auf den Navigationscontroller übertragen wird, dieser Standardrücktext jedoch durch den obigen Code überschrieben werden kann).
quelle
Es gibt zwei Möglichkeiten.
1.In der vorherigenViewController.viewDidLoad ()
2.In der currentViewController.viewDidAppear ()
Grund: Das
backButton
kommt vonnavigationBar.backItem.backBarButtonItem
, daher ist der erste Weg offensichtlich. In currentViewController.viewDidLoad () können wir die Referenz von nicht erhaltenbackItem
, da in viewDidAppear () das auf seine. PushednavigationBar
gedrückt wird, sodass wir Änderungen an dem in currentViewController vornehmen können. viewDidAppear ()navigationView
stack
backItem
Weitere Informationen finden Sie unter Dokument: UINavigationBar
quelle
Fügen Sie in der
viewDidLoad
Methode des präsentierenden Controllers Folgendes hinzu:quelle
Diese Antworten beheben zwar das Problem, aber dies könnte nützlich sein
quelle
Swift 4
Während das vorherige Sprichwort zur Vorbereitung auf das Segue korrekt ist und der Zurück-Button zum vorherigen VC gehört, fügt es nur eine Menge unnötigen Codes hinzu.
Am besten legen Sie den Titel der aktuellen VC in viewDidLoad fest und der Titel der Zurück-Schaltfläche wird bei der nächsten VC automatisch korrekt festgelegt. Diese Linie hat bei mir funktioniert
quelle
Dies funktioniert für Swift 5 :
Bitte beachten Sie, dass dies für den nächsten Push-View-Controller wirksam ist, nicht für den aktuellen auf dem Display. Deshalb ist es sehr verwirrend!
Überprüfen Sie auch das Storyboard und wählen Sie das Navigationselement des vorherigen Ansichts-Controllers aus. Geben Sie dann etwas in die Schaltfläche Zurück (Inspektor) ein.
quelle
Versuchen Sie dies ... es wird funktionieren ...
Der obige Code blendet den Text aus und zeigt nur den Zurückpfeil in der Navigationsleiste an.
quelle
self.title = ""
Vorher einstellenself.navigationController?.pushViewController(vc, animated: true)
.quelle
Ich hoffe es hilft!! #swift 3
quelle
Wenn Sie einen View Controller von der Seite des Page View Controllers verschieben, können Sie den Titel der Zurück-Schaltfläche des Navigationscontrollers nicht aktualisieren. Um dies zu lösen, erstellen Sie einen Delegaten zurück zu Ihrem übergeordneten Ansichtscontroller (möglicherweise können Sie auch die Ansichtscontrollerhierarchie zurück zum übergeordneten Ansichtscontroller durchlaufen).
Darüber hinaus haben Zurück-Schaltflächen eine Zeichenbeschränkung. Wenn Sie diese Zeichenbegrenzung überschreiten, wird das System standardmäßig auf "Zurück" gesetzt. Es wird für Sie nicht abschneiden. Beispielsweise:
quelle
Swift 4
In meinem Fall bestand die Lösung darin, das Navigationselement des Master View Controllers zu löschen, bevor Sie zum Child View Controller wechseln. Und stellen Sie es erneut ein, wenn es erneut angezeigt wird
MasterController
Und so drücke ich einen UIViewController und lösche das Element der hinteren Leiste im untergeordneten Controller:
MasterController
quelle
für Swift 4.2
quelle
GOTCHA: Wenn Sie Probleme mit einem der mit vielen Sternen ausgezeichneten Vorschläge haben, stellen Sie sicher, dass Sie Ihre
UITableViewCell
s registrierenviewDidLoad()
, nicht voninit()
quelle
Lösung überprüft und in Swift 5 arbeiten
Im Folgenden habe ich einige Lösungen für verschiedene Fälle aufgeführt:
1. Entfernen Sie den Text von der Zurück-Schaltfläche
Die beste Lösung zum Entfernen von Text von der Zurück-Schaltfläche ist das Hinzufügen von viewDidLoad ():
2. Legen Sie den eigenen Text auf der Zurück-Schaltfläche fest
Wenn Sie Ihren eigenen Titel festlegen möchten, legen Sie den Titel von backButton fest:
3. Leeren Sie die Zurück-Taste auf allen VC
Wenn Sie einen gemeinsamen Stil in der gesamten App erstellen möchten, um nur einen Pfeil ohne Text zurück zu haben, erstellen Sie eine Basis-VC für alle Ihre View Controller:
Mit der oben vorgestellten Lösung können Sie die Zurück-Schaltfläche in Zukunft anpassen, wenn Sie später eine Ausnahme machen möchten, indem Sie eine zusätzliche Variable hinzufügen und diese in einem bestimmten ViewController überschreiben, z.
quelle
schnell 4
Es gibt eine Möglichkeit, Text in backButton programmgesteuert vom aktuellen viewController aus zu ändern:
quelle