Swift iOS 11 - панель навигации становится черной после setBackgroundImage

У меня есть 2 ViewController, которые меняются как rootViewController моего корневого навигационного контроллера кнопками в боковом меню.

Однако в каждом ViewController внешний вид навигационной панели отличается от кода, приведенного ниже.

func setRootViewController(for type: MenuCategory) {
    if viewControllers.first?.classForCoder != type.rawValue.classForCoder {
        setViewControllers([type.rawValue], animated: true)
    }

    switch type {
    case .home:
        navigationBar.isHidden = false
        navigationBar.isTranslucent = true
        navigationBar.setBarColor(.clear)
        navigationBar.setBackgroundImage(UIImage(), for: .default)
        navigationBar.prefersLargeTitles = false
        break

    case .chat:
        navigationBar.isHidden = false
        navigationBar.isTranslucent = false
        navigationBar.setBackgroundImage(nil, for: .default)
        navigationBar.setBarColor(nil)
        navigationBar.barTintColor = .white
        navigationBar.tintColor = .white
        navigationBar.prefersLargeTitles = true

Проблема в том, что, когда я переключаюсь из "дома" в "чат", панель навигации становится черной. Я думаю, что эта проблема вызвана тем, что я установил backgroundImage для UIImage() в "home" и setBackgroundImage(nil, for: .default) не выполняет функцию восстановления фонового изображения по умолчанию.

Имидж "дома"

Изображение "чат" (1)

Изображение "чат" (2)

0 ответов

Другие вопросы по тегам