2012-02-05 19 views
6

Ho cercato su questo sito e su altri come impostare il cambio di colore della barra di navigazione, ho visto esempi ma non è proprio quello di cui ho bisogno quindi ogni aiuto sarà apprezzato.Cambia la tinta della barra di navigazione usando Xcode

sulla mia app delegato ho:

@synthesize window; 
@synthesize tabBarController; 
@synthesize navigationController; 
@synthesize navigationController1; 
@synthesize navigationController2; 
@synthesize viewController; 
@synthesize viewController2; 
@synthesize viewController3; 

#pragma mark - 
#pragma mark Application lifecycle 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:    (NSDictionary *)launchOptions {  

    // Override point for customization after application launch. 


    // Set the tab bar controller as the window's root view controller and display. 
self.window.rootViewController = self.tabBarController; 
[self.window makeKeyAndVisible]; 


    return YES; 
} 

Quando entro il codice self.navigationController.navigationBar setTintColor:[UIColor blackColor] di quanto sopra, cambia solo uno dei miei controller di navigazione, ma non quello che ho bisogno.

Ho 7 elementi sulla mia tabbar e quando premo il tasto "ALTRO ..." ottengo una vista tabella con gli altri elementi che non si adattano alla schermata principale, la barra di navigazione viene aggiunta automaticamente e non importa cosa faccio Non posso modificare questa barra di navigazione, posso cambiare quelli che ho @synthesize ma non quello inserito automaticamente.

Qualcuno può farmi sapere come modificare la barra di navigazione posizionata automaticamente?

risposta

17

È possibile farlo utilizzando il proxy di aspetto. Se si imposta il colore in questo modo si applicherà ad ogni barra di navigazione nella app:

[[UINavigationBar appearance] setTintColor:[UIColor blackColor]]; 
+1

Volevo solo dire che il proxy di aspetto è disponibile solo in iOS 5. – Randall

+0

Come è il metodo setTintColor stesso. Se hai bisogno di questa roba per lavorare su iSO4 avrai bisogno di un approccio diverso. Ecco una discussione che si collega ad alcune soluzioni: http://stackoverflow.com/questions/9150956/customizeappearance-compatibility-on-others-ios/9151033#9151033 –

+0

Fantastico, questo è quello che stavo cercando. Grazie mille. – Derek

3

per iOS 6 e inferiori:

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

Per iOS 7 e versioni successive:

[[UINavigationBar appearance] setBarTintColor:[UIColor blackColor]]; 

Impostalo in questo metodo in AppDelegate.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
Problemi correlati