MFMailComposeViewController in iOS 7 statusbar are black
Set the UIApplication statusBarStyle in the completion block of presentViewController for your MFMailComposeViewController. i.e.
MFMailComposeViewController *mailVC = [[MFMailComposeViewController alloc] init]; [self.navigationController presentViewController:mailVC animated:YES completion:^{ [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent]; }];
You may also need to add and/or set "View controller-based status bar appearance" to NO in your Info.plist file.
Try to add category to MFMailComposeViewController
EDIT: this solution works if "View controller-based status bar appearance" == YES
@implementation MFMailComposeViewController (IOS7_StatusBarStyle)-(UIStatusBarStyle)preferredStatusBarStyle{ return UIStatusBarStyleLightContent;}-(UIViewController *)childViewControllerForStatusBarStyle{ return nil;}@end
Swift solution.Set View controller-based status bar appearance
to YES
import UIKitimport MessageUIimport AddressBookUIextension MFMailComposeViewController { override func preferredStatusBarStyle() -> UIStatusBarStyle { return .LightContent } override func childViewControllerForStatusBarStyle() -> UIViewController? { return nil }}extension ABPeoplePickerNavigationController { override func preferredStatusBarStyle() -> UIStatusBarStyle { return .LightContent } override func childViewControllerForStatusBarStyle() -> UIViewController? { return nil }}