Изменение цвета заголовка панели навигации в MFMailComposeViewController в iOS 12 не работает - PullRequest
0 голосов
/ 26 сентября 2018

Как я могу изменить цвет заголовка UINavigationBar в MFMailComposeViewController в iOS 12?

Вот что я делаю:

import MessageUI

extension MFMailComposeViewController {
    open override func viewDidLoad() {
        super.viewDidLoad()
        navigationBar.isTranslucent = false
        navigationBar.isOpaque = false
        navigationBar.barTintColor = .white
        navigationBar.tintColor = .white
        navigationBar.titleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.white]
    }
}

В iOS 10 работает:

ios 10

В iOS 11 работает:

ios 11

В iOS 12не работает:

ios 12

Ответы [ 3 ]

0 голосов
/ 04 апреля 2019

Я пытался полностью изменить цвет заголовка, однако он не работает

Перед представлением контроллера 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([NSAttributedStringKey.foregroundColor: UIColor.black], for: .normal)
UIBarButtonItem.appearance().setTitleTextAttributes([NSAttributedStringKey.foregroundColor: UIColor.black], for: .highlighted)
UIBarButtonItem.appearance().setTitleTextAttributes([NSAttributedStringKey.foregroundColor: UIColor.clear], for: .disabled)
UIBarButtonItem.appearance().setTitleTextAttributes([NSAttributedStringKey.foregroundColor: UIColor.black], for: .selected)

enter image description here

0 голосов
/ 07 апреля 2019

titleView по-прежнему работает нормально.Просто создайте представление с надписью в раскадровке , как этот , с таким шрифтом, как вам нужно, и установите его в качестве заголовка.

if let view = Bundle.main.loadNibNamed("WTitleView", owner: self, options: nil)?.first as? UIView {
            navigationItem.titleView = view
} 

like this

0 голосов
/ 27 октября 2018

В вашем файле AppDelegate.swift в блоке launchOptions-запуска didFinishLaunchingWithOptions

ПОПРОБОВАТЬ:

    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
...