2012-06-12 27 views
13

Non ho problemi a cambiare il colore del titolo principale di navigazione su una normale viewController ma su un MFMailComposeViewController, non è possibile. Posso cambiare i colori dei pulsanti (cancella e invia), posso impostare lo sfondo della barra di navigazione ma non è possibile cambiare il colore del titolo. Non voglio impostare un nuovo titolo (a quanto pare, non è consentire da Apple), voglio solo cambiare il colore:. '(Cambia il colore del titolo principale della navigazione in MFMailComposeViewController

please help me Grazie

+0

Fare riferimento a questo link: http://stackoverflow.com/questions/1634417/changing-mfmailcomposeviewcontrollers-toolbar-color – Dee

risposta

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]; 

Speranza il suo lavoro per voi ..

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

Non è quello che cerco, qui si cambia il colore della barra di navigazione (ho già uno sfondo per che), voglio cambiare il colore di titleview – user1451163

+0

ma grazie a dover provare ^^ – user1451163

0

per colori diversi dal bianco, giocare con questo codice :

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

Questa è la risposta corretta per iOS 7, 8, 9, e 10:

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

Ecco perché:

Il controllo contrassegnati rispondere sopra (da Mani) riferimento [UINavigationBar appearance] non è corretto in quanto cambierà il colore del titolo nel UINavigationBar che sta spuntando lo MFMailComposeViewController, che era un effetto che non volevo. È necessario ottenere in modo specifico il NavBar del selettore come fa il mio codice.

L'impostazione tintColor non è corretta a partire da iOS 7 (l'altra risposta di Mani) poiché imposta i colori dei pulsanti, non il titolo.

Inoltre, UITextAttributeTextColor è ora obsoleto, utilizzare NSForegroundColorAttributeName.

Problemi correlati