Esto no es algo que pueda caber en unas pocas líneas de código, pero este es un enfoque que podría funcionar para usted.
Para ocultar la barra de navegación:
[[self navigationController] setNavigationBarHidden:YES animated:YES];
Para mostrarlo:
[[self navigationController] setNavigationBarHidden:NO animated:YES];
La documentación para este método está disponible aquí .
Para escuchar un "doble clic" o doble toque, subclase UIView
y haga una instancia de esa subclase view
propiedad de su controlador de vista .
En la subclase de vista, anule su -touchesEnded:withEvent:
método y cuente cuántos toques obtiene en una duración de tiempo, midiendo el tiempo entre dos toques consecutivos, tal vez con CACurrentMediaTime()
. O prueba el resultado de [touch tapCount]
.
Si obtiene dos toques, su vista de subclase emite y NSNotification
su controlador de vista se ha registrado para escuchar.
Cuando su controlador de vista escucha la notificación, dispara un selector que oculta o muestra la barra de navegación usando el código mencionado anteriormente, dependiendo del estado visible actual de la barra de navegación, al que se accede leyendo la isHidden
propiedad de la barra de navegación .
EDITAR
La parte de mi respuesta para manejar eventos de tap es probablemente útil antes de iOS 3.1. La UIGestureRecognizer
clase es probablemente un mejor enfoque para manejar doble toque, en estos días.
EDITAR 2
La forma rápida de ocultar la barra de navegación es:
navigationController?.setNavigationBarHidden(true, animated: true)
Para mostrarlo:
navigationController?.setNavigationBarHidden(false, animated: true)