隐藏导航栏时显示状态栏

Show status bar when hide navigation bar

我在用户向上滚动 table 时隐藏导航栏。

func scrollViewWillBeginDragging(scrollView: UIScrollView) {
    if self.navigationController?.navigationBarHidden == false {
        self.navigationController?.setNavigationBarHidden(true, animated: true)
    }
}

但是这个方法也隐藏了状态栏。

无法保留我的状态栏。这些方法不起作用:

UIApplication.sharedApplication().setStatusBarHidden(false, withAnimation: .None)
prefersStatusBarHidden()

求求你帮忙!

尝试创建一个变量shouldHideStatusBar

并覆盖此函数:

override func prefersStatusBarHidden() -> Bool {
    return shouldHideStatusBar
}

滚动时:

shouldHideStatusBar = true/false
self.setNeedsStatusBarAppearanceUpdate()

希望对您有所帮助。

是我的错误。状态栏没有隐藏,它只是像 table 视图背景一样的白色。隐藏导航栏时只需设置此项:

UIApplication.shared.statusBarStyle = .default

如果您只想在 scrollView 上隐藏和显示导航栏。

你可以override viewDidAppear。 & 使用 hidesBarsOnSwipe 属性 的导航控制器。

override func viewDidAppear(animated: Bool) {

    super.viewDidAppear(animated)
    
    navigationController?.hidesBarsOnSwipe = true

}

希望本回答对您有所帮助。