通过UIActivityViewController更改MFMailComposeViewController中的状态栏颜色

use*_*428 11 uinavigationbar ios uiactivityviewcontroller swift mfmailcomposeviewcontroller

我试图改变导航栏按钮的颜色,导航栏色调和文本颜色,但我似乎没有得到任何地方.在MFMailComposeViewController正在通过激活UIActivityViewController和我已经试过那些(通过未工作过几种不同的方法UIActivityViewController虽然).

这是我目前的代码:

    UINavigationBar.my_appearanceWhenContainedIn(MFMailComposeViewController).barTintColor = UIColor.blackColor()
Run Code Online (Sandbox Code Playgroud)

这是在这里提出的.我也试过这个:

    activityVC.navigationController?.navigationBar.tintColor = UIColorFromRGB(0x0096FF)
    activityVC.navigationController?.navigationBar.barTintColor = UIColor.whiteColor()
Run Code Online (Sandbox Code Playgroud)

我也想改变状态栏的颜色.

有人有主意吗?

更新:

我修复了按钮和标题的导航栏问题,但仍在寻找状态栏的解决方案.这样做不起作用:

    self.presentViewController(activityVC, animated: true, completion: { () in
        UIApplication.sharedApplication().setStatusBarStyle(UIStatusBarStyle.LightContent, animated: true)
    })
Run Code Online (Sandbox Code Playgroud)

ale*_*511 0

转到您的应用程序委托文件并将这些行添加到您的 didFinishLaunchingWithOptions :) 它将更新所有视图控制器的状态栏颜色。

UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.LightContent
Run Code Online (Sandbox Code Playgroud)

另外,在您的 info.plist 文件中添加一个名为“查看基于控制器的状态栏外观”的新键并将值设置为“NO”

更新

要在视图之间设置不同的样式,请尝试以下操作:

override func preferredStatusBarStyle() -> UIStatusBarStyle {
return UIStatusBarStyle.LightContent
}
Run Code Online (Sandbox Code Playgroud)

然后你可以根据你想要实现的目标返回光明或黑暗:)