更改iOS 12中MFMailComposeViewController中导航栏的标题颜色不工作
如何更改iOS 12中的更改iOS 12中MFMailComposeViewController中导航栏的标题颜色不工作,ios,iphone,swift,uinavigationbar,mfmailcomposeviewcontroller,Ios,Iphone,Swift,Uinavigationbar,Mfmailcomposeviewcontroller,如何更改iOS 12中的MFMailComposeViewController中的UINavigationBar的标题颜色 这就是我正在做的: import MessageUI extension MFMailComposeViewController { open override func viewDidLoad() { super.viewDidLoad() navigationBar.isTranslucent = false n
MFMailComposeViewController
中的UINavigationBar
的标题颜色
这就是我正在做的:
import MessageUI
extension MFMailComposeViewController {
open override func viewDidLoad() {
super.viewDidLoad()
navigationBar.isTranslucent = false
navigationBar.isOpaque = false
navigationBar.barTintColor = .white
navigationBar.tintColor = .white
navigationBar.titleTextAttributes = [.foregroundColor: UIColor.white]
}
}
在iOS 10作品中:
在iOS 11工程中:
在iOS 12中,以下各项不起作用:
在didFinishLaunchingWithOptions启动选项块的AppDelegate.swift文件中 试试这个:
let navigationBarAppearace = UINavigationBar.appearance()
navigationBarAppearace.barTintColor = .blue //your desired color
navigationBarAppearace.tintColor = .white //your button etc color
navigationBarAppearace.titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white] //your Title Text color
我尝试了所有的方式来改变标题的颜色,但它不工作 在展示mailcomopser控制器之前 我把背景颜色改成了白色 和按钮颜色为黑色 代码如下:
UINavigationBar.appearance().setBackgroundImage(UIImage(), for: UIBarPosition.any, barMetrics: UIBarMetrics.default)
UINavigationBar.appearance().shadowImage = UIImage()
UINavigationBar.appearance().tintColor = UIColor.white
UINavigationBar.appearance().barTintColor = UIColor.white
UINavigationBar.appearance().isTranslucent = false
UINavigationBar.appearance().clipsToBounds = false
UINavigationBar.appearance().backgroundColor = UIColor.white
UIBarButtonItem.appearance().setTitleTextAttributes([.foregroundColor: UIColor.black], for: .normal)
UIBarButtonItem.appearance().setTitleTextAttributes([.foregroundColor: UIColor.black], for: .highlighted)
UIBarButtonItem.appearance().setTitleTextAttributes([.foregroundColor: UIColor.clear], for: .disabled)
UIBarButtonItem.appearance().setTitleTextAttributes([.foregroundColor: UIColor.black], for: .selected)
标题视图仍然可以正常工作。只需在故事板中创建带有标签的视图,使用您需要的字体,并将其设置为标题视图
if let view = Bundle.main.loadNibNamed("WTitleView", owner: self, options: nil)?.first as? UIView {
navigationItem.titleView = view
}
您并不孤单:仅供参考-不支持在扩展中重写方法,这是未定义的行为。请参阅Swift手册中的扩展章节,以获得一个大的警告,告诉您这一点。我也有同样的问题(但在Objective-C中)。我已尝试在
init
、viewDidLoad
、viewwillbeen
和viewdidbeen
中更新导航栏。我已经设置了窗口的tintColor
,并尝试在导航栏和UINavigationBar外观上设置titleTextAttributes
。iOS 12中的标题没有任何更改。我甚至已经放弃了视图层次结构,没有导航条的迹象。但在iOS 10和iOS 12下都是如此。是时候向苹果公司报告错误了。@ssrobbi是的,我已经尝试过设置largeTitleTextAttributes
的颜色,但没有任何改变。我不认为大标题被使用了。我确实提交了一份bug报告。其他人也需要这样做,让苹果知道这影响到了很多人。我也向苹果提交了一个bug。我一直找不到一个好的解决方案,也找不到任何原因来解释为什么它在我这方面不起作用。但问题是如何在iOS 12中更改MFMailComposeViewController的标题颜色不幸的是,它在任何情况下都不起作用,所以我们需要修改背景颜色和按钮颜色,为什么它在iOS 14中不起作用?