Frage

Ich bin mit einer getönten Navigationsleiste und eine getönte globale UIToolbar in meinem iPhone App. In meiner Info-Ansicht, habe ich einen Knopf, der an der Spitze dieser Ansicht (mit der „Abbrechen“ und „Senden“ Taste), um einen MFMailComposeViewController, und die Symbolleiste öffnet, ist immer noch blau. Ich rufe die MFMailComposeViewController wie folgt aus:

-(void)displayMailSheet
{

    MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
    picker.mailComposeDelegate = self;

    [picker setSubject:@"..."];

    NSArray *toRecipients = [NSArray arrayWithObject:@"..."]; 

    [picker setToRecipients:toRecipients];

    [self presentModalViewController:picker animated:YES];
    [picker release];

}

Ist es möglich, die Farbe dieser Ansicht in der Symbolleiste zu ändern? Wenn es möglich ist, wie kann ich das tun?

War es hilfreich?

Lösung

Hier gehen Sie:

[[picker navigationBar] setTintColor:[UIColor blackColor]];

für iOS 8.0

 [[picker navigationBar] setBarTintColor:[UIColor blackColor]];

Andere Tipps

Ein kleiner Punkt über diese Funktionalität unter iOS7 - die Tönungsfarbe Eigenschaft wirkt sich nicht mehr die Farbe des Balkens als Ganzes, sondern es ändert sich nur die Farbe des ‚Senden‘ und ‚Abbrechen‘ Tasten (die in iOS7 Stil werden einfach getöntes Etiketten).

Dies ist bemerkenswert, wenn Sie auf die Titelleiste Farbe zu etwas wie weiß oder klar geändert haben, wie unter iOS7 die Sende- und Abbrechen Tasten werden nicht mehr sichtbar sein.

Sie können es von AppDelegate global tun

[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navigationbar-background.png"] forBarPosition:UIBarPositionTopAttached barMetrics:UIBarMetricsDefault]; // MFMailComposeViewController's navigationBar backgroundcolor 

NSDictionary *textTitleOptions = [NSDictionary dictionaryWithObjectsAndKeys:[UIColor darkGrayColor], UITextAttributeTextColor, [UIColor whiteColor], UITextAttributeTextShadowColor, nil];
[[UINavigationBar appearance] setTitleTextAttributes:textTitleOptions];//MFMailComposeViewController's navigationBar text color 

Ich will nur betonen, dass die oben genannte Post über Apple Ihre Anwendung ist eine alte Post abzulehnen. Hier ist ein Zitat aus der aktuellen MFMailComposeViewController Dokumentation ...

  

Wichtig : Die Ansicht Hierarchie dieser Klasse ist privat und Sie müssen es nicht ändern. Sie können jedoch anpassen, um die Erscheinung eines   B. durch das UIAppearance Protokoll.

Versuchen Sie folgendes:

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

Von der offiziellen MFMailComposeViewController Klasse Referenz:

Wichtig: Die E-Mail Zusammensetzung Schnittstelle selbst nicht anpassbar ist und darf nicht von der Anwendung geändert werden. [...]

ich denke, es wäre eine bessere Wahl sein, um die Standard-Mail-Zusammensetzung Schnittstelle ohne Änderungen vor. Andernfalls kann Apple-Anwendung ablehnen.

Lassen Sie uns hier fragen, ob jemand eine Erfahrung auf diese Weise hatte.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top