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

前端之家收集整理的这篇文章主要介绍了ios – 通过UIActivityViewController更改MFMailComposeViewController中的状态栏颜色前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图改变导航栏按钮的颜色,导航栏色调颜色和文字颜色,但是我似乎没有得到任何地方. MFMailComposeViewController正在通过一个UIActivityViewController激活,我已经尝试了一些以前工作的不同方法(不通过UIActivityViewController).

这是我当前的代码

UINavigationBar.my_appearanceWhenContainedIn(MFMailComposeViewController).barTintColor = UIColor.blackColor()

这是建议here.我也试过这个:

activityVC.navigationController?.navigationBar.tintColor = UIColorFromRGB(0x0096FF)
    activityVC.navigationController?.navigationBar.barTintColor = UIColor.whiteColor()

我也想改变状态栏颜色.

任何人都有什么想法?

更新:

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

self.presentViewController(activityVC,animated: true,completion: { () in
        UIApplication.sharedApplication().setStatusBarStyle(UIStatusBarStyle.LightContent,animated: true)
    })

解决方法

您可以对MFMailViewController进行子类化,并覆盖其viewWillAppear方法
override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)
    UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.LightContent
    self.navigationController.navigationBar.translucent = false
    self.navigationController.navigationBar.opaque = false
    self.navigationController.navigationBar.barTintColor = UIColor.blueColor()
}

由于只有当MFMailComposeViewController处于活动状态时,才希望状态栏为lightcontent,所以您不应该将

UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.LightContent

进入你的应用程序代表didFinishLoading.这将为您的整个应用程序设置lightContent.

猜你在找的iOS相关文章