Próbuję zmienić kolor przycisku Ustawienia na biały, ale nie mogę go zmienić.
Próbowałem obu tych:
navigationItem.leftBarButtonItem?.tintColor = UIColor.whiteColor()
navigationItem.backBarButtonItem?.tintColor = UIColor.whiteColor()
ale bez zmian, nadal wygląda to tak:
Jak sprawić, by ten przycisk był biały?
ios
swift
uinavigationbar
uibarbuttonitem
backbarbuttonitem
Brandon Evans
źródło
źródło
AppDelegate.swift > application(application:didFinishLaunchingWithOptions:)
możesz napisać:self.window!.tintColor = .yourColor
Ten kod zmienia kolor strzałki
Jeśli to nie zadziała, użyj poniższego kodu:
Swift 3 Notes
UIColor.whiteColor()
i podobne zostały uproszczone doUIColor.white
Ponadto wiele wcześniej niejawnych opcji zostało zmienionych na jawne, więc możesz potrzebować:
źródło
self.navigationController?.navigationBar.tintColor = UIColor.whiteColor()
pracował dla mnie (Swift 2.2)Bardzo łatwy do skonfigurowania w serii ujęć:
źródło
Powinieneś użyć tego:
źródło
Szybki
źródło
Możesz użyć takiego jak ten. Umieść to w środku
AppDelegate.swift
.źródło
Szybki 4.2
Zmień kompletny motyw aplikacji
Zmień konkretny kontroler
źródło
UINavigationController
?W Swift3 , Aby ustawić przycisk Wstecz na
red
.źródło
W Swift 4 możesz rozwiązać ten problem, używając:
źródło
Szybki 3
Najbardziej pozytywna odpowiedź nie jest poprawna dla Swift 3.
Prawidłowy kod do zmiany koloru to:
Jeśli chcesz zmienić kolor, zmień UIColor.white powyżej na żądany kolor
źródło
Wszystkie odpowiedzi ustawione w
UINavigationBar.appearance().tintColor
konflikcie z dokumentacją Apple wUIAppearance.h
.W Xcode musisz kliknąć polecenie każdej właściwości, której chcesz używać z proxy wyglądu, aby sprawdzić plik nagłówka i upewnić się, że właściwość jest opatrzona adnotacją
UI_APPEARANCE_SELECTOR
.Tak więc poprawnym sposobem pokolorowania paska nawigacyjnego na fioletowo oraz białego tytułu i przycisków w aplikacji za pośrednictwem wyglądu proxy jest:
Zauważ, że
UIBarButtonItem
nie jest to podklasa,UIView
ale raczejNSObject
. Więc jegotintColor
właściwość nie jest dziedziczonatintColor
odUIView
.Niestety
UIBarButtonItem.tintColor
nie jest opatrzone adnotacjamiUI_APPEARANCE_SELECTOR
- ale wydaje mi się, że to błąd w dokumentacji. Odpowiedź firmy Apple Engineering na ten radar mówi, że jest obsługiwany.źródło
Ten fragment działa magicznie. Zamiast czerwonego koloru zmień go na dowolny.
źródło
Użyj tego kodu w
AppDelegate
klasie wewnątrzdidFinishLaunchingWithOptions
.źródło
Spróbujmy tego kodu:
źródło
w szybkim użyciu 2.0
źródło
Jeśli masz już przycisk Wstecz w kontrolerze widoku „Ustawienia” i chcesz zmienić kolor przycisku Wstecz w kontrolerze widoku „Informacje o płatności” na coś innego, możesz to zrobić w kontrolerze widoku „Ustawienia” przygotuj się na taki segregator :
źródło
To działa dla mnie, iOS 9.0+
źródło
Dodaj następujący kod do funkcji didFinishLaunchingWithOptions w AppDelegate.swift
źródło
W przypadku Swift 2.0, aby zmienić kolor odcienia paska nawigacyjnego , tekst tytułu i kolor odcienia przycisku Wstecz zmieniono za pomocą następującego polecenia w AppDelegate.swift
źródło
Nie jestem pewien, dlaczego nikt o tym nie wspominał ... ale robiłem dokładnie to, co robiłeś w moim
viewDidLoad
... i to nie działało. Potem umieściłem mój kodviewWillAppear
i wszystko działało.Powyższe rozwiązanie polega na zmianie pojedynczego elementu paska. Jeśli chcesz zmienić kolor każdego paska nawigacji w kodzie, postępuj zgodnie z tą odpowiedzią .
Zasadniczo przejście na samą klasę za pomocą
appearance()
przypomina globalną zmianę we wszystkich instancjach tego widoku w aplikacji. Więcej informacji tutajźródło
Masz jeden wybór, aby ukryć przycisk Wstecz i zrobić to samemu. Następnie ustaw kolor.
Ja to zrobiłem:
źródło
Zostanie to rozwiązane za pomocą tej linii w - (void) viewDidLoad:
źródło
(lldb) p self.navigationItem.backBarButtonItem (UIBarButtonItem *) $9 = nil (lldb)
Powinieneś dodać ten wiersz
źródło
Wolę niestandardowy NavigationController niż ustawianie globalnego interfejsu użytkownika lub wstawianie ViewController.
Oto moje rozwiązanie
Ponadto nie musisz zadzierać z interfejsem Apple Api, takim jak EKEventEditViewController , PickerViewController itd., Jeśli używasz ustawień globalnych, takich jak
UIBarButtonItem.appearance().tintColor = .white
źródło
źródło