Это не то, что может вписаться в несколько строк кода, но это один подход, который может работать для вас.
Чтобы скрыть панель навигации:
[[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)