2012-02-05 25 views
6

He estado buscando en este sitio y en otros cómo configurar el cambio de tinte de la barra de navegación, he visto ejemplos pero no es lo que necesito, así que cualquier ayuda será apreciada.Cambiar el matiz de la barra de navegación utilizando Xcode

en mi aplicación tengo delegado:

@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; 
} 

Cuando entro en el código self.navigationController.navigationBar setTintColor:[UIColor blackColor] en lo anterior, sólo cambia una de mis controladores de navegación, pero no el que necesito.

Tengo 7 elementos en mi barra de pestañas y cuando presiono "MÁS ..." obtengo una vista de tabla con los otros elementos que no caben en la pantalla principal, la barra de navegación se agrega automáticamente y no importa lo que hago no puedo cambiar el matiz de la barra de navegación, puedo cambiar los que tengo @synthesize pero no los ingresé automáticamente.

¿Puede alguien decirme cómo cambiar la barra de navegación colocada automáticamente?

Respuesta

17

Puede hacerlo utilizando el proxy de aparición. Si define el color como éste se aplicará a cada barra de navegación en la aplicación:

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

Solo quiero mencionar que el proxy de apariencia solo está disponible en iOS 5. – Randall

+0

Como es el método setTintColor en sí mismo. Si necesita que esto funcione en iSO4, necesitará un enfoque diferente. Aquí hay una discusión que vincula a algunas soluciones: http://stackoverflow.com/questions/9150956/customizeappearance-compatibility-on-others-ios/9151033#9151033 –

+0

Fantástico, esto es lo que estaba buscando. Muchas gracias. – Derek

3

Para iOS 6 e inferior:

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

Para iOS 7 y superiores:

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

Configúrelo en este método en AppDelegate.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
Cuestiones relacionadas