Это не то, что может вписаться в несколько строк кода, но это один подход, который может работать для вас.
Чтобы скрыть панель навигации:
[[self navigationController] setNavigationBarHidden:YES animated:YES];
Чтобы показать это:
[[self navigationController] setNavigationBarHidden:NO animated:YES];
Документация по этому методу доступна здесь .
Чтобы прослушать «двойной щелчок» или двойное касание, UIView
создайте подкласс и сделайте экземпляр этого подкласса view
свойством контроллера представления .
В подклассе представления переопределите его -touchesEnded:withEvent:
метод и посчитайте, сколько касаний вы получаете за промежуток времени, измеряя время между двумя последовательными касаниями, возможно, с помощью CACurrentMediaTime()
. Или проверить результат от [touch tapCount]
.
Если вы получили два касания, ваше подклассное представление выдает, NSNotification
что ваш контроллер представления зарегистрирован для прослушивания.
Когда ваш контроллер представления слышит уведомление, он запускает селектор, который либо скрывает, либо отображает панель навигации с использованием вышеупомянутого кода, в зависимости от текущего состояния видимой панели навигации, доступ к которому осуществляется посредством чтения isHidden
свойства панели навигации .
РЕДАКТИРОВАТЬ
Часть моего ответа для обработки событий касания, вероятно, полезна еще до iOS 3.1. UIGestureRecognizer
Класс, вероятно, лучше всего подходит для обработки двойных нажатий, в эти дни.
РЕДАКТИРОВАТЬ 2
Swift способ скрыть панель навигации:
navigationController?.setNavigationBarHidden(true, animated: true)
Чтобы показать это:
navigationController?.setNavigationBarHidden(false, animated: true)