MFMailComposeViewController导航栏中的ios 11问题
我使用下面的代码来演示MFMailViewController。在ios 11发布之前,一切都很完美MFMailComposeViewController导航栏中的ios 11问题,ios,swift,xcode,ios11,Ios,Swift,Xcode,Ios11,我使用下面的代码来演示MFMailViewController。在ios 11发布之前,一切都很完美 let mailViewController = MFMailComposeViewController() mailViewController.mailComposeDelegate = self mailViewController.setToRecipients(
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。我已将整个应用程序导航栏的色调设置为白色。因此,在控制器中,我得到的是白色,而不是绿色 我正在演示这个函数,在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
}
我正在演示这个函数,在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
}
我终于发现了问题所在。我在其中一个文件中全局修改了UIBarButton UIBarButtonItem.appearance.setTitleTextAttributes[NSForegroundColorAttributeName:UIColor.theme,NSFontAttributeName:UIFont.regularAppFontOfSize0.0],用于:UIControlState.normal 尽管我使用了mailViewController.navigationBar.tintColor=UIColor.green,但由于全局修改,它没有任何效果 但令人惊讶的是,ios 10及以下版本没有问题,ios 11却没有问题
如果有人知道原因,我们将不胜感激 我终于找到了问题所在。我在其中一个文件中全局修改了UIBarButton UIBarButtonItem.appearance.setTitleTextAttributes[NSForegroundColorAttributeName:UIColor.theme,NSFontAttributeName:UIFont.regularAppFontOfSize0.0],用于:UIControlState.normal 尽管我使用了mailViewController.navigationBar.tintColor=UIColor.green,但由于全局修改,它没有任何效果 但令人惊讶的是,ios 10及以下版本没有问题,ios 11却没有问题
如果有人知道原因,我们将不胜感激 您是否尝试过self.navigationController?.navigationBar.tintColor=UIColor.green MFMailComposeViewController类viewodLoad方法?是。但是没有用。您是否尝试过self.navigationController?.navigationBar.tintColor=UIColor.green n MFMailComposeViewController类viewodLoad方法?是。但没用,我有答案。我已经贴了。谢谢Nav?.barStyle=.black救了我的命!非常感谢。我得到了一个答案。我已经贴了。谢谢Nav?.barStyle=.black救了我的命!非常感谢。