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)
не выполняет функцию восстановления фонового изображения по умолчанию.