У меня проблема, когда дело доходит до строки состояния и ее скрытия.
Настройка
У меня есть BaseViewController с выдвижным меню.Этот BaseViewController также является корневым контроллером приложения [как установлено внутри AppDelegate]:
window = UIWindow()
window?.makeKeyAndVisible()
window?.rootViewController = BaseController()
Как только я выбираю пункт меню, BaseViewController заполняется соответствующим ViewController [после того, как я внедряю его в навигациюконтроллер].
Пункт меню A: ViewControllerA
Пункт меню B: ViewControllerB
Пункт меню C: ViewControllerC
Скажите, что я выбираю пункт меню A (в BaseViewController есть следующий код):
let activeVC = UINavigationController(rootViewController: ViewControllerA())
view.addSubview(activeVC.view)
addChild(activeVC)
Когда я выбираю другой пункт меню (скажем, элемент B), ясначала удалите предыдущий активный контроллер вида (в данном случае элемент A), а затем я добавляю ViewControllerB так же, как я делал с ViewControllerA:
Вот как я удаляю предыдущий активный контроллер вида:
activeVC.view.removeFromSuperview()
activeVC.removeFromParent()
Управление строкой состояния в каждом контроллере представления отдельно:
Я установил Вид строки состояния на основе контроллера на ДА в plist управляет внешним видом строки состояния в каждом контроллере представления:
Затем я захожу в ViewController и хочу скрыть статусбар, и я добавляю следующий код:
override var prefersStatusBarHidden: Bool {
return true
}
Проблема
Если я хочу скрыть строку состояния внутри любого из ViewController A, B или C, я не могу.Переопределение prefersStatusBarHidden и установка его в значение «true» ничего не изменит.
Если я переопределю prefersStatusBarHidden и установите его в значение «true» в BaseViewController, то BaseViewController, а также любой из ViewController A, B иC скрывает строку состояния.
Что я хочу
Я хочу иметь возможность скрыть строку состояния на ViewControllerB, не скрывая ее на остальных.Тоже миллион долларов, но я с этим разберусь!
Заранее спасибо!