有时发送和取消按钮显示为白色,因此它们在 MFMailComposeViewController 的白色背景上几乎不可见。 MFMailComposeViewController 的实例是在按下带有 dataDetectorTypes .Link 的 UITextView 后创建的,因此我无法在 viewDidLoad 函数中立即访问该实例,如下所示:
extension MFMailComposeViewController {
override public func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.LightContent
}
override public func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
UINavigationBar.appearance().barTintColor = UIColor.blackColor()
}
override public func viewDidLoad() {
UINavigationBar.appearance().barTintColor = UIColor.redColor()
navigationBar.barTintColor = UIColor.blueColor()
super.viewDidLoad()
navigationBar.translucent = false
navigationBar.opaque = false
}
}
如何在 MFMailComposeViewController 上的按钮上设置默认颜色并避免弄乱应用程序其余部分的导航栏?
因为现在 barTintColor 在第一次进入时没有设置。但第二次设置为 blackColor,我猜是从前一个实例的 viewWillDisappear 调用。
最佳答案
一开始..不要用
UINavigationBar.appearance().barTintColor = UIColor.blackColor()
如果您有一个带有 UINavigationController 的 Storyboard,请将那里的色调设置为您的 UINavigationBar。
每个 UINavigationController 只有一个 navigationBar
你不能用那种丑陋的外观工具来处理所有情况下的颜色。一些 Controller (MailComposer、PhotoRoll、...)使用黑色的 BarButtons,有些则被染成白色。
如果您正在使用外观...所有条都受到影响(仅新创建的条,而不是内存中的条)
关于ios - 在 MFMailComposeViewController 中将“发送和取消”按钮设置为白色背景上的白色以外的其他内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60005444/