Đây không phải là thứ có thể phù hợp với một vài dòng mã, nhưng đây là một cách tiếp cận có thể phù hợp với bạn.
Để ẩn thanh điều hướng:
[[self navigationController] setNavigationBarHidden:YES animated:YES];
Để hiển thị nó:
[[self navigationController] setNavigationBarHidden:NO animated:YES];
Tài liệu cho phương pháp này có sẵn ở đây .
Để nghe "nhấp đúp" hoặc nhấn đúp, lớp con UIView
và tạo một thể hiện của lớp con đó thuộc tính của trình điều khiển xem của bạn view
.
Trong lớp con khung nhìn, ghi đè -touchesEnded:withEvent:
phương thức của nó và đếm số lần chạm bạn nhận được trong một khoảng thời gian, bằng cách đo thời gian giữa hai lần chạm liên tiếp, có lẽ bằng CACurrentMediaTime()
. Hoặc kiểm tra kết quả từ [touch tapCount]
.
Nếu bạn nhận được hai vòi, chế độ xem được phân lớp NSNotification
của bạn sẽ phát sinh trình điều khiển xem của bạn đã đăng ký để lắng nghe.
Khi trình điều khiển chế độ xem của bạn nghe thấy thông báo, nó sẽ kích hoạt bộ chọn ẩn hoặc hiển thị thanh điều hướng bằng cách sử dụng mã đã nói ở trên, tùy thuộc vào trạng thái hiển thị hiện tại của thanh điều hướng, được truy cập thông qua việc đọc thuộc isHidden
tính của thanh điều hướng .
BIÊN TẬP
Phần câu trả lời của tôi để xử lý các sự kiện nhấn có lẽ hữu ích trở lại trước iOS 3.1. Các UIGestureRecognizer
lớp học có lẽ là một cách tiếp cận tốt hơn để xử lý hai vòi nước, những ngày này.
CHỈNH SỬA 2
Cách Swift để ẩn thanh điều hướng là:
navigationController?.setNavigationBarHidden(true, animated: true)
Để hiển thị nó:
navigationController?.setNavigationBarHidden(false, animated: true)