Я использую стороннюю библиотеку под названием SideMenu, которую можно найти здесь . Это работает как шарм, но в моем приложении я использую белую строку состояния UIStatusBarStyle.lightContent
. Я установил это во всем проекте: в информации о развертывании и программно:
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
В viewDidLoad()
я также звоню setNeedsStatusBarAppearanceUpdate()
. Он работает на всех ViewControllers, кроме случаев, когда я использую SideMenu. Когда он появляется, текст StatusBar становится черным, а когда я его закрываю, он снова не становится белым. Он становится белым только когда я перехожу на другой ViewController, где preferredStatusBarStyle
переопределяется.
Есть идеи, как я могу это исправить? Мне нужно позвонить setNeedsStatusBarAppearanceUpdate()
куда-нибудь еще? Я попытался взглянуть на исходный код SideMenu и попытался реализовать его в функции перехода, но это также оказалось безуспешным.
Примечание: я настроил свой проект с помощью .lightContent
в информации о развертывании, но все равно мои ViewControllers показывают черную строку состояния, если я не переопределяю preferredStatusBarStyle
. Может быть, это тоже проблема - по умолчанию она не белая, а черная, хотя я установил .lightContent
?
РЕДАКТИРОВАТЬ: я также использую эти расширения, чтобы заставить цвет StatusBar работать, используя TabBarController и NavigationController. Здесь также может быть проблема:
extension UITabBarController {
open override var childForStatusBarStyle: UIViewController? {
return selectedViewController
}
}
extension UINavigationController {
open override var childForStatusBarStyle: UIViewController? {
return visibleViewController
}
}