Ich versuche, die Farbe der Schaltfläche "Einstellungen" in "Weiß" zu ändern, kann sie jedoch nicht ändern.
Ich habe beide ausprobiert:
navigationItem.leftBarButtonItem?.tintColor = UIColor.whiteColor()
navigationItem.backBarButtonItem?.tintColor = UIColor.whiteColor()
aber keine Änderung, es sieht immer noch so aus:
Wie mache ich diesen Knopf weiß?
ios
swift
uinavigationbar
uibarbuttonitem
backbarbuttonitem
Brandon Evans
quelle
quelle
AppDelegate.swift > application(application:didFinishLaunchingWithOptions:)
können Sie schreiben:self.window!.tintColor = .yourColor
Dieser Code ändert die Pfeilfarbe
Wenn dies nicht funktioniert, verwenden Sie den folgenden Code:
Swift 3 Notizen
UIColor.whiteColor()
und ähnliche wurden vereinfachtUIColor.white
Außerdem wurden viele zuvor implizite Optionen in explizit geändert, sodass Sie möglicherweise Folgendes benötigen:
quelle
self.navigationController?.navigationBar.tintColor = UIColor.whiteColor()
arbeitete für mich (Swift 2.2)Sehr einfach im Storyboard einzurichten:
quelle
Sie sollten dies verwenden:
quelle
Schnell
quelle
Sie können wie diese verwenden. Legen Sie es hinein
AppDelegate.swift
.quelle
Swift 4.2
Komplettes App-Thema ändern
Ändern Sie den spezifischen Controller
quelle
UINavigationController
?In Swift3 die Schaltfläche Zurück auf
red
.quelle
In Swift 4 können Sie dieses Problem beheben, indem Sie:
quelle
Swift 3
Die am besten bewertete Antwort ist für Swift 3 nicht korrekt.
Der richtige Code zum Ändern der Farbe lautet:
Wenn Sie die Farbe ändern möchten, ändern Sie UIColor.white oben in die gewünschte Farbe
quelle
Alle Antworten stehen im
UINavigationBar.appearance().tintColor
Widerspruch zur Dokumentation von Apple inUIAppearance.h
.In Xcode müssen Sie mit der Befehlstaste auf jede Eigenschaft klicken, die Sie mit dem Erscheinungs-Proxy verwenden möchten, um die Header-Datei zu überprüfen und sicherzustellen, dass die Eigenschaft mit Anmerkungen versehen ist
UI_APPEARANCE_SELECTOR
.Der richtige Weg, um die Navigationsleiste lila und den Titel und die Schaltflächen in der gesamten App über den Erscheinungs-Proxy weiß zu färben, ist:
Beachten Sie, dass dies
UIBarButtonItem
keine Unterklasse vonUIView
sondern istNSObject
. So ist estintColor
Eigenschaft nicht die geerbtetintColor
ausUIView
.Wird leider
UIBarButtonItem.tintColor
nicht mit kommentiertUI_APPEARANCE_SELECTOR
- aber das scheint mir ein Dokumentationsfehler zu sein. Die Antwort von Apple Engineering in diesem Radar besagt, dass es unterstützt wird.quelle
Dieser Ausschnitt macht die Magie. Ändern Sie es anstelle von redColor nach Ihren Wünschen.
quelle
Verwenden Sie diesen Code in der
AppDelegate
Klasse innerhalb vondidFinishLaunchingWithOptions
.quelle
Versuchen wir diesen Code:
quelle
in Swift 2.0 verwenden
quelle
Wenn Sie die Schaltfläche "Zurück" bereits in Ihrem Ansichts-Controller "Einstellungen" haben und die Farbe der Zurück-Schaltfläche im Ansichts-Controller "Zahlungsinformationen" in etwas anderes ändern möchten, können Sie dies in den Ansichts-Controllern "Einstellungen" tun, um sich auf einen solchen Übergang vorzubereiten ::
quelle
Dies funktioniert für mich, iOS 9.0+
quelle
Fügen Sie der Funktion didFinishLaunchingWithOptions in AppDelegate.swift den folgenden Code hinzu
quelle
Für Swift 2.0, um die Änderung zu Navigationsleiste Tönungsfarbe , Titeltext und Zurück - Taste Tönungsfarbe unter Verwendung der folgenden in AppDelegate.swift geändert
quelle
Ich bin mir nicht sicher, warum niemand dies erwähnt hat ... aber ich habe genau das getan, was Sie in meinem getan haben
viewDidLoad
... und es hat nicht funktioniert. Dann habe ich meinen Code eingegebenviewWillAppear
und alles hat funktioniert.Die obige Lösung besteht darin, ein einzelnes BarbuttonItem zu ändern . Wenn Sie die Farbe für jede Navigationsleiste in Ihrem Code ändern möchten, folgen Sie dieser Antwort .
Grundsätzlich ist das Ändern der Klasse selbst mit
appearance()
einer globalen Änderung aller Instanzen dieser Ansicht in Ihrer App. Mehr dazu hierquelle
Sie haben eine Wahl, verstecken Sie Ihren Zurück-Knopf und machen Sie es mit sich selbst. Stellen Sie dann die Farbe ein.
Ich habe das gemacht:
quelle
Es wird mit dieser Zeile in - (void) viewDidLoad gelöst:
quelle
(lldb) p self.navigationItem.backBarButtonItem (UIBarButtonItem *) $9 = nil (lldb)
Sie sollten diese Zeile hinzufügen
quelle
Ich bevorzuge einen benutzerdefinierten NavigationController, anstatt eine globale Benutzeroberfläche festzulegen oder ViewController einzufügen.
Hier ist meine Lösung
Außerdem müssen Sie sich nicht mit Apple Api wie EKEventEditViewController , PickerViewController usw. herumschlagen , wenn Sie globale Einstellungen verwenden
UIBarButtonItem.appearance().tintColor = .white
quelle
quelle