2013-10-09 19 views
19

Sono stato sviluppato un app per iOS7 che ha questo disegnocome cambiare BackButton colore iOS7

enter image description here

Come potete vedere c'è una freccia blu per tutta la mia BackButton (utilizzando UINavigationController e segues), voglio fare loro colore rosso, questo è il mio codice:

[UIBarButtonItem appearance]setTintColor:(UIColorFromRGB(toolbarTintColor))]; 
[[UIBarButtonItem appearance]setTitleTextAttributes:textAtributesDictionaryNavBarButtons forState:UIControlStateNormal]; 

ma solo i risultati si applica a tutti gli altri pulsanti, tutto l'aiuto che apprezzerete

grazie in anticipo per il sostegno

risposta

34

La proprietà colore tinta di una barra di navigazione determina il colore del testo delle sue voci dei tasti bar in iOS 7. Il codice che stai cercando è qualcosa di simile:

[[UINavigationBar appearance] setTintColor:[UIColor redColor]]; 

e, naturalmente, sostituendo [UIColor redColor] con qualsiasi colore tu voglia.

+0

semplice e efective grazie al 100% di lavoro si accoppiano !!! = D –

+2

la proprietà tintColor non ha UI_APPEARANCE_SELECTOR quindi penso che questa soluzione possa non essere affidabile. La risposta di Enrico Susatyo sembra quella giusta. –

+0

In qualche modo questo funziona con iOS 8 (8.1) per me ma non con iOS 7. Solo il colore del testo cambia, non lo < utilizzato per funzionare in iOS 7 prima. Hmm .. – Daniel

12

mettere questo codice nel tuo App Delegato:

Objective-C

[self.window setTintColor:[UIColor redColor]]; 

Swift

self.window?.tintColor = UIColor.redColor() 
+1

Questa è una risposta migliore in quanto suggerisce di personalizzare il testo di navigazione in AppDelegate.m. – Hahnemann

+0

Funziona su iOS 9.2.1. in Xcode 7.2. –

+0

Ma non voglio cambiare il colore del testo della mia barra delle schede – fujianjin6471

10

Se non si desidera cambiare il colore di tinta in l'intera app e voglio solo farlo su una barra di navigazione, fare questo:

self.navigationController.navigationBar.tintColor = [UIColor redColor]; 
1

Swift:

self.navigationController?.navigationBar.tintColor = UIColor.grayColor() 
4

Se si desidera la versione rapida.

UINavigationBar.appearance().tintColor = UIColor.whiteColor() 

Inoltre, se si desidera applicare questo stile a tutti i controller di visualizzazione di navigazione. Metti che il codice nel metodo didFinishLaunchingWithOptions applicazione nel vostro AppDelegate

1
  • Se stai usando storyboard, allora hai per aggiungere un attributo definito dall'utente per percorso chiave 'tintColor' sotto il riquadro di classe ispettore.
  • Poiché la proprietà statico tintColor è stata rimossa nella versione più recente del generatore di interfaccia. click '+', add tintColor in KeyPath, set the Type color and add your color.
-2
-(void)viewDidAppear:(BOOL)animated 
{ 
    //set back button color 
    [[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor redColor], NSForegroundColorAttributeName,nil] forState:UIControlStateNormal]; 
    //set back button arrow color 
    [self.navigationController.navigationBar setTintColor:[UIColor whiteColor]]; 
} 
Problemi correlati