Как изменить цвет фона навигационной панели на UIImagePickerController iOS 13 - PullRequest
1 голос
/ 14 января 2020

Я пытаюсь изменить цвет фона навигационной панели на UIImagePickerController, и кажется, что все предыдущие подходы больше не работают в последней версии iOS. Мне не нужно глобальное решение (через AppDelegate), потому что я хочу сохранить предыдущие цвета других navBar. Следующий код работает нормально на iOS <12.3, но не воздействует на iOS 13, а navBar все время остается полупрозрачным белым. </p>

class CustomImagePickerController: UIImagePickerController {

    // MARK: - Override Properties

    override var preferredStatusBarStyle: UIStatusBarStyle {
        if #available(iOS 13, *) {
            return .darkContent
        }
        return .lightContent
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        setup()
        if #available(iOS 13, *) {
            self.modalPresentationStyle = .overCurrentContext
        }
    }

    // MARK: - Private Methods

    private func setup() {
        if #available(iOS 13, *) {
            let navBarAppearance = UINavigationBarAppearance()
            navBarAppearance.configureWithOpaqueBackground()
            navBarAppearance.backgroundColor = UIColor.appPurpleColor
            navigationBar.compactAppearance = navBarAppearance
            navigationBar.standardAppearance = navBarAppearance
            navigationBar.scrollEdgeAppearance = navBarAppearance
        } else {
            navigationBar.isTranslucent = false
            navigationBar.barTintColor = UIColor.appPurpleColor
            navigationBar.tintColor = UIColor.appPurpleColor
        }
    }
}

Что я здесь не так делаю?

...