我正在使用一个名为 SideMenu 的第三方库,可以在此处找到。它就像一个魅力,但在我的应用程序中,我使用了一个白色的状态栏UIStatusBarStyle.lightContent
。我在整个项目中进行了设置:在部署信息中并以编程方式:
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
在viewDidLoad()
,我也打电话setNeedsStatusBarAppearanceUpdate()
。它适用于所有 ViewController,除非我使用 SideMenu。当它出现时,StatusBar 的文本变为黑色,当我关闭它时,它不会再次变为白色。只有当我转到另一个preferredStatusBarStyle
被覆盖的 ViewController 时,它才会变成白色。
关于如何解决这个问题的任何想法?我需要打电话setNeedsStatusBarAppearanceUpdate()
到其他地方吗?我曾尝试查看 SideMenu 的源代码并尝试在转换功能中实现它,但这也没有成功。
注意:我已经在部署信息中设置了我的项目.lightContent
,但如果我不覆盖preferredStatusBarStyle
. 也许这也可能是问题 - 默认情况下不是白色而是黑色,即使我将其设置为.lightContent
?
编辑:我还使用这些扩展来使状态栏的颜色使用 TabBarController 和 NavigationController 工作。问题也可能在这里:
extension UITabBarController {
open override var childForStatusBarStyle: UIViewController? {
return selectedViewController
}
}
extension UINavigationController {
open override var childForStatusBarStyle: UIViewController? {
return visibleViewController
}
}