Це не те, що може вписатись у кілька рядків коду, але це один підхід, який може працювати для вас.
Щоб приховати панель навігації:
[[self navigationController] setNavigationBarHidden:YES animated:YES];
Щоб показати це:
[[self navigationController] setNavigationBarHidden:NO animated:YES];
Документація для цього методу доступна тут .
Для прослуховування "подвійного клацання" або подвійного торкання, підкласу UIView
та зробити примірник цього підкласу view
властивості контролера перегляду .
У підкласі подання перегляньте його -touchesEnded:withEvent:
метод і порахуйте, скільки дотиків ви отримаєте за тривалість часу, вимірюючи час між двома послідовними дотиками, можливо, з CACurrentMediaTime()
. Або перевірити результат від [touch tapCount]
.
Якщо у вас є два дотики, ваш підкласовий вигляд видає NSNotification
те, що ваш контролер перегляду зареєстрований для прослуховування.
Коли ваш контролер перегляду чує сповіщення, він видає селектор, який або приховує, або показує панель навігації, використовуючи згаданий вище код, залежно від поточного видимого стану панелі навігації, до якого можна отримати доступ через зчитування isHidden
властивостей панелі навігації .
EDIT
Частина моєї відповіді на обробку подій на дотику, ймовірно, корисна ще до iOS 3.1. Цього дня UIGestureRecognizer
, мабуть, кращий підхід для обробки подвійних натискань.
EDIT 2
Швидкий спосіб приховати панель навігації:
navigationController?.setNavigationBarHidden(true, animated: true)
Щоб показати це:
navigationController?.setNavigationBarHidden(false, animated: true)