0

图片如下所示。

在我的应用程序中,添加了一个电子邮件提示,但状态栏现在是黑色的,如何将其更改为白色样式

if MFMailComposeViewController.canSendMail() {
            let composeMail = MFMailComposeViewController()
            composeMail.mailComposeDelegate = self
            //  configs
            composeMail.setToRecipients(["kylebing@163.com"])
            composeMail.setSubject("【饥荒口袋】反馈")
            composeMail.setMessageBody("问题页面:\n\n\n\n建议:\n", isHTML: false)
            composeMail.navigationBar.tintColor = UIColor.white.withAlphaComponent(0.85) // Mail VC's Button Color
            // TODO: - Change status bar color
            //  show it
            self.present(composeMail, animated: true, completion: nil)
}

Balck 状态栏 - 现在

4

3 回答 3

0

在呈现邮件编写器之前调用此方法,

func setStatusBarBackgroundColor(color: UIColor) {

        guard let statusBar = UIApplication.shared.value(forKeyPath: "statusBarWindow.statusBar") as? UIView else { return }

        statusBar.backgroundColor = color
    }
于 2017-09-01T10:54:06.620 回答
0

尝试在这样的邮件控制器中设置statusBarStyle完成处理程序 present

self.present(composeMail, animated: true, completion:{ () in
     UIApplication.shared.statusBarStyle = UIStatusBarStyle.lightContent
})

希望它会奏效。

于 2017-09-01T11:01:27.397 回答
-1

在视图中会出现:

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()}

要更改整个应用程序的状态栏颜色,请在 app delegate 中编写这行代码

UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.LightContent

进入您的应用程序代表 didFinishLoading。

于 2017-09-01T10:52:01.390 回答