我在MFMailComposeViewController中遇到导航栏问题。
我有一个应用程序,我们在plist文件中将“状态栏样式”设置为“UIStatusBarStyleLightContent”。它在所有视图中都能很好地工作,除非我调用MFMailComposeViewController。它又回到了黑色。其余的都没问题。我们有一个自定义图像,可以结转,我可以毫无问题地设置色调颜色。有人知道怎么修这个东西吗?如何在邮件中将“状态栏样式”重置为“UIStatusBarStyleLightContent”?
AppDelegate中的
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"headerLogo.png"] forBarMetrics:UIBarMetricsDefault];
致电邮件
MFMailComposeViewController *mailController = [[MFMailComposeViewController alloc] init];
mailController.mailComposeDelegate = self;
[[mailController navigationBar] setTintColor:[UIColor whiteColor]];
[[mailController navigationBar] setBarTintColor:[UIColor whiteColor]];
[self presentViewController:mailController animated:YES completion:nil];
答案 0 :(得分:1)
我认为在MFMailViewController中设置barStyle是不可访问的,除非因为Apple代码中的私有API。您可以将UINavigationBar设置为app委托中的某个图片的原因是因为在app委托中,您调用的是UINavigationBar类的外观,而不是MFMailViewController导航栏的色调。
希望这有帮助
答案 1 :(得分:0)
我也遇到了这个问题,并找到了以下答案:
答案 2 :(得分:0)
在info.plist中添加新行:
UIViewControllerBasedStatusBarAppearance
将其设置为:
NO
MFMailComposeViewController *mail = [[MFMailComposeViewController alloc] init];
[self presentViewController: mail animated: YES completion: ^ {
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
}];