2015-12-23 5 views
2

Скрыть навигатор, когда пользователь прокручивает стол вверх.Показать строку состояния при скрытии панели навигации

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

Но этот метод также скрывает строку состояния.

Не удается сохранить строку состояния. Эти методы не работают:

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

Пожалуйста, помогите!

+1

Перейдите в info.plist и добавьте два атрибута, если нет. установите «Строка состояния изначально скрыто» на «НЕТ» и установите значение UIViewControllerBasedStatusBarAppearance равным NO. –

ответ

0

Была моя ошибка. Строка состояния не была скрыта, она была просто белой, как фон в виде стола. Просто установите это, когда панель навигации скрыта:

UIApplication.sharedApplication().statusBarStyle = .Default 
2

Попробуйте сделать переменную shouldHideStatusBar

И переопределить этот FUNC:

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

когда свиток выразился:

shouldHideStatusBar = true/false 
self.setNeedsStatusBarAppearanceUpdate() 

Надежда эта помощь.

4

Если вы хотите скрыть и показать только навигационную панель на scrollView.

вы можете override viewDidAppear. & использование hidesBarsOnSwipe свойство навигационного контроллера.

переопределение функ viewDidAppear (анимированный: Bool) {

super.viewDidAppear(animated) 

    navigationController?.hidesBarsOnSwipe = true 

} 

Надежда Этот ответ поможет вам.