1

我正在使用一个名为 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
    }
}
4

0 回答 0