【发布时间】:2018-09-26 16:26:18
【问题描述】:
如何在iOS 12中更改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 中无法正常工作:
【问题讨论】:
-
仅供参考 - 不支持覆盖扩展中的方法,这是未定义的行为。请参阅 Swift 书籍中的扩展章节,以获得告诉您这一点的大警告。
-
我遇到了同样的问题(但在 Objective-C 中)。我已经尝试更新
init、viewDidLoad、viewWillAppear和viewDidAppear中的导航栏。我已经设置了窗口的tintColor,并尝试在导航栏和UINavigationBar appearance代理上设置titleTextAttributes。 iOS 12 中的标题没有任何改变。我什至丢弃了视图层次结构,并且没有导航栏的迹象。但在 iOS 10 和 iOS 12 下都是如此。是时候向 Apple 报告错误了。 -
@ssrobbi 是的,我已经尝试为
largeTitleTextAttributes设置颜色,但没有任何改变。我认为无论如何都不会使用大标题。我确实提交了错误报告。其他人也需要这样做,让 Apple 知道它正在影响很多人。 -
我也向 Apple 提交了一个错误。我一直无法找到一个好的解决方案或任何无法解决我问题的原因。
标签: ios iphone swift uinavigationbar mfmailcomposeviewcontroller