[英]ios 11 issue in MFMailComposeViewController's navigation bar
我使用下面的代码来呈现MFMailViewController。 在ios 11发行之前,一切工作正常。
let mailViewController = MFMailComposeViewController()
mailViewController.mailComposeDelegate = self
mailViewController.setToRecipients(nil)
mailViewController.setSubject("Subject")
mailViewController.navigationBar.tintColor = UIColor.green
UINavigationBar.appearance().isTranslucent = false
self.present(mailViewController, animated: true, completion: nil)
无论我使用什么代码,都无法正常工作。 我可以显示一个控制器,但导航栏的颜色不会改变。 仅iOS 11才有此问题。我已将整个应用程序导航栏的颜色设置为白色。 因此,在控制器中,我得到的是白色而不是绿色。
我终于找到了问题所在。 我在其中一个文件中全局修改了UIBarButton。
UIBarButtonItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.theme, NSFontAttributeName : UIFont.regularAppFontOfSize(0.0)], for: UIControlState.normal)
即使我使用了mailViewController.navigationBar.tintColor = UIColor.green
,由于进行了全局修改,它也没有任何作用。
但是令人惊讶的是,在ios 10及更低版本中没有问题,但是在ios 11中没有问题。
如果有人知道原因,则表示赞赏。
我正在介绍此功能,并且在iOS 11上看起来还不错。
override func viewDidLoad() {
super.viewDidLoad()
self.present(self.configuredMailComposeViewController(), animated: true, completion: nil)
}
func configuredMailComposeViewController() -> MFMailComposeViewController {
let mailComposeViewController = MFMailComposeViewController()
mailComposeViewController.mailComposeDelegate = self
mailComposeViewController.setSubject("Your subject and stuff like that")
let nav = self.navigationController?.navigationBar
nav?.barStyle = UIBarStyle.default
nav?.tintColor = UIColor.green
nav?.titleTextAttributes = [NSForegroundColorAttributeName: UIColor.green]
return mailComposeViewController
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.