vedere "Modifica colori della UINavigationBarButtons"
EDIT: tolgo il link perché il dominio è giù ...
Il è il testo della cache di google:
OK, ecco un altro consiglio rapido. "Come cambiare i colori di un pulsante su una barra degli strumenti." Naturalmente, questo può essere applicato a qualsiasi barra degli strumenti, ma ho intenzione di dimostrare la procedura su una UINavigationBar.
L'immagine sopra mostra solo un paio di colori. In realtà, puoi rendere il pulsante qualsiasi colore che desideri. Fantastico! Il codice è davvero semplice da fare anche questo. La prima cosa che vogliamo fare è aprire il file di intestazione per qualsiasi oggetto trasformi un pulsante della barra di navigazione di un colore diverso e dichiarare la classe forward UINavigationButton. È possibile ottenere questa classe eseguendo un'iterazione attraverso le sottoview di UINavigationBar, leggendo i suoi nomi di classe delle sottoview o eseguendo la classe UIKit in caso di dispositivo jailbroken.
inserire la seguente riga prima della dichiarazione di interfaccia:
@class UINavigationButton;
Ora, dichiarare un nuovo metodo nell'intestazione che useremo per cambiare realmente il colore del pulsante.
- (void)changeNavigationButtonColorToColor:(UIColor *)newColor
O qualcosa di simile alla riga di codice precedente.
Ora apri il file di implementazione dell'oggetto e implementa il metodo sopra. Ovunque nel file, aggiungere il seguente metodo:
- (void)changeNavigationButtonColorToColor:(UIColor *)newColor {
for (UIView *view in self.navigationController.navigationBar.subviews) {
NSLog(@"%@", [[view class] description]);
if ([[[view class] description] isEqualToString:@"UINavigationButton"]) {
[(UINavigationButton *)view setTintColor:newColor];
}
}
}
Come potete vedere sopra, questo è in realtà molto più facile di quanto non sembri essere. Quello che prima facciamo è impostare un ciclo for per scorrere le sottoview di UINavigationBar usando NSFastEnumeration. Quindi, restituiamo il nome della classe della sottoview, per riferimento futuro. Se il nome della classe è UINavigationButton, allora abbiamo la nostra opinione. Tutto ciò che facciamo è impostare la proprietà tintColor se UINavigationButton.
Ecco fatto, abbiamo finito!
In alternativa, se si desidera un ambito più ampio, suggerirei di creare una nuova categoria UINavigationBar e di inserire il metodo di cambio colore dei pulsanti. Questo è stato il tuo metodo può essere eseguito da qualsiasi classe che utilizza un UINavigationBar senza dover ricreare lo stesso metodo più e più volte.
Ricordare che un pulsante Indietro e un pulsante di navigazione non sono la stessa cosa. Dovrai colorare separatamente il pulsante posteriore.
E come al solito, ecco un link ad un'applicazione di esempio che illustra questo codice: NavButtonColor.zip
Grazie amico molto !!!!! –