2012-05-23 9 views
9

En mi AppDelegate utilizo UIAppearance para establecer mi propia navigationbar con este código:¿Cómo deshacerse de UIAppearance cuando no es necesario?

[[UINavigationBar appearance] setTintColor:[UIColor blackColor]]; 
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"nav5.png"] forBarMetrics:UIBarMetricsDefault]; 

Sin embargo, algunos puntos de vista de mi solicitud no lo necesita. ¿Cómo puedo deshacerme de él, así que solo puedo usar IB en las vistas afectadas?

Respuesta

12

No necesita usar el proxy. Simplemente obtenga la barra de navegación actual, que debería verse diferente y establecer los colores directamente sobre ella.

[navigationBarInstance setTintColor:[UIColor blackColor]]; 
[navigationBarInstance setBackgroundImage:[UIImage imageNamed:@"nav5.png"] forBarMetrics:UIBarMetricsDefault]; 

también puede simplemente establezca ambos valores a nil, donde desea los estilos estándar de nuevo. (probado por Ben Clayton).

[navigationBarInstance setTintColor:nil]; 
[navigationBarInstance setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault]; 
+0

Establecer la imagen de fondo y los colores en 'nil' establece los estilos de nuevo a los valores predeterminados. Probado. –

+1

No funciona en la instancia de 'MFMailComposeViewController' (Consulte https://alpha.app.net/stuffmc/post/5028278) –

+0

y por lo tanto, ¿votó menos? es una pregunta general aquí, no sobre el comisionado postal ... – calimarkus

Cuestiones relacionadas