2012-06-12 18 views
13

Ich habe kein Problem für die Farbe des Haupt-Titels der Navigation auf einem normalen ViewController ändern, aber auf einem MFMailComposeViewController, ist es nicht möglich. Ich kann Farben von Knöpfen ändern (annulliere und sende), ich kann Hintergrund der Navigationsleiste einstellen, aber nicht möglich, Farbe des Titels zu ändern. Ich möchte nicht, einen neuen Titel gesetzt (anscheinend, es erlaubt, die nicht von Apple), ich möchte nur die Farbe ändern. "(Ändern Haupttitel Farbe der Navigation in MFMailComposeViewController

Bitte helfen Sie mir Dank

+0

Siehe diesen Link: http://stackoverflow.com/questions/1634417/changing-mfmailcomposeviewcontrollers-toolbar-color – Dee

Antwort

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

[[UINavigationBar appearance] setTitleTextAttributes:navbarTitleTextAttributes]; 

Oder

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

Hoffnung für Sie seine Arbeit ..

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

Es ist nicht was ich suche, hier ändern Sie die Farbe der Navigationsleiste (Ich habe bereits einen Hintergrund für das), ich möchte die Farbe von titleview ändern – user1451163

+0

aber danke, ^^ zu versuchen – user1451163

0

für andere Farben als schwarz, mit diesem Code spielen, um :

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

Diese für iOS ist die richtige Antwort 7, 8, 9 und 10:

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

Hier ist der Grund:

Die Überprüfung oben markiert beantworten (durch Mani) referenziert [UINavigationBar appearance] ist falsch, da es die Farbe des Titels in der UINavigationBar ändert, die die MFMailComposeViewController knallen lässt, die ein Effekt war, den ich nicht wollte. Sie müssen die NavBar des Pickers genau wie meinen Code abrufen.

Einstellung tintColor ist auch falsch von iOS 7 (die andere Antwort von Mani), da es die Farben der Tasten, nicht der Titel einstellt.

Außerdem ist UITextAttributeTextColor jetzt veraltet, bitte verwenden Sie NSForegroundColorAttributeName.