2012-06-12 40 views
13

No tengo ningún problema para cambiar el color del título principal de navegación en un controlador de vista normal, pero en un MFMailComposeViewController, no es posible. Puedo cambiar los colores de los botones (cancelar y enviar), puedo establecer el fondo de la barra de navegación pero no es posible cambiar el color del título. No quiero fijar un nuevo título (al parecer, no se permite por Apple), sólo quiero cambiar el color:. '(Cambiar el color del título principal de navegación en MFMailComposeViewController

Por favor, ayúdame Gracias

+0

Consulte este enlace: http://stackoverflow.com/questions/1634417/changing-mfmailcomposeviewcontrollers-toolbar-color – Dee

Respuesta

16
NSDictionary *navbarTitleTextAttributes = [NSDictionary dictionaryWithObjectsAndKeys: 
              [UIColor whiteColor],UITextAttributeTextColor, 
              [UIColor blackColor], UITextAttributeTextShadowColor, 
              [NSValue valueWithUIOffset:UIOffsetMake(-1, 0)], UITextAttributeTextShadowOffset, nil]; 

[[UINavigationBar appearance] setTitleTextAttributes:navbarTitleTextAttributes]; 

O

navigationController.navigationBar.titleTextAttributes = [NSDictionary dictionaryWithObject:[UIColor yellowColor] forKey:UITextAttributeTextColor]; 

Esperanza su trabajo por usted ..

10
MFMailComposeViewController *picker = [[MFMailComposeViewController alloc]init]; 
    picker.mailComposeDelegate = self; 
    [[picker navigationBar] setTintColor:[UIColor blackColor]]; 
+0

No es lo que busco, aquí cambia el color de la barra de navegación (ya tengo un fondo para eso), quiero cambiar el color de titleview – user1451163

+0

pero gracias a tener que intentar ^^ – user1451163

0

para otros colores que el negro, jugar un poco con este código :

MFMailComposeViewController *mailController = [MFMailComposeViewController new]; 

      [mailController.navigationBar setTintColor:[UIColor colorWithHue:240.0f/359.0f 
                    saturation:85.0f/100.0f 
                    brightness:60.0f/100.0f 
                     alpha:0.0f]]; 
13

Esta es la respuesta correcta para iOS 7, 8, 9 y 10:

MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init]; 
picker.mailComposeDelegate = self; 
[[picker navigationBar] setTitleTextAttributes:[NSDictionary dictionaryWithObject:[UIColor blackColor] forKey:NSForegroundColorAttributeName]]; 

Aquí es por qué:

La verificación marcada respuesta anterior (por Mani) haciendo referencia a [UINavigationBar appearance] es incorrecto ya que cambiará el color del título en el UINavigationBar que también muestra el MFMailComposeViewController, que era un efecto que no deseaba. Necesitas obtener específicamente el NavBar del selector como lo hace mi código.

La configuración tintColor también es incorrecta a partir de iOS 7 (la otra respuesta de Mani) ya que establece los colores de los botones, no el título.

Además, UITextAttributeTextColor ahora está en desuso, por favor use NSForegroundColorAttributeName.

Cuestiones relacionadas