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