2013-10-11 28 views
5

iOS 7 thể thao một cử chỉ mới, vuốt sang trái sang phải trên màn hình dưới dạng phím tắt cho nút Quay lại trong UINavigationController.Cử chỉ mới - Vuốt từ trái sang phải - dưới dạng phím tắt cho nút Quay lại trong UINavigationController trong ứng dụng cũ

Ứng dụng của tôi dường như không nhận hành vi này miễn phí. Tôi cần phải làm gì để làm cho cử chỉ này có sẵn cho ứng dụng iOS của tôi (được xây dựng cho iOS 5.1 trở lên trong Xcode 4.6.3)?

Đây là một bài viết có video, The new gesture in iOS 7 you want to know about, từ góc nhìn của người dùng.

Câu trả lời có thể có liên quan đến interactivePopGestureRecognizer là lớp con UIGestureRecognizer.

Trả lời

3

Nó sẽ hoạt động tự động nếu nút quay lại hiển thị. Nếu bạn đang hiển thị leftBarButtonItem thay vì nút quay lại, cử chỉ sẽ không hiển thị theo mặc định. Ngoài ra, nếu bạn đang sử dụng một UINavigationBar nhưng không phải là UINavigationController, bạn sẽ không thấy chức năng này.

Nếu bạn đang sử dụng UINavigationController và mục điều hướng của trình điều khiển chế độ xem có chứa leftBarButtonItem, bạn vẫn có thể thêm chức năng để vuốt trái sang phải cử chỉ của bộ điều hướng, bằng cách gắn một đại biểu vào bộ điều hướng điều hướng interactivePopGestureRecognizer.

EDIT: Tôi không nhận thấy rằng bạn đang xây dựng dựa trên SDK 5.1. Đây là một tính năng mới trong SDK iOS 7, vì vậy tôi tin rằng bạn sẽ cần phải xây dựng với Xcode 5 so với SDK iOS 7 để tận dụng tính năng mới này.

+0

Tôi đang sử dụng 'UINavigationController 'thuần tuý với các nút' Quay lại' được tạo tự động. Tôi cho rằng ứng dụng của tôi sẽ nhận được tính năng Vuốt để di chuyển miễn phí trong iOS 7.Nhưng rõ ràng là không. –

+0

Bạn đang xây dựng dựa trên SDK 5.1. Tính năng này không có trong 5.1.Take SDK mới nhất để xây dựng và với nút quay lại mặc định, nó sẽ hoạt động – user1010819

0

Tôi đã tìm thấy giải pháp hoàn hảo cho tùy chỉnh leftBarButtom vấn đề

Đặt các đại biểu cử chỉ để điều khiển chuyển hướng

bạn cần phải phân lớp UINavigationController và thực hiện "UIGestureRecognizerDelegate" giao thức trong nó, và thêm một số mã trên viewDidLoad xem mã sau bên dưới

CustomNavigationController.m

@ interface CBNavigationController: UINavigationController @end

@implementation CBNavigationController

  • (void) {viewDidLoad __weak CBNavigationController * weakSelf = tự;

    nếu ([self respondsToSelector: @selector (interactivePopGestureRecognizer)]) { self.interactivePopGestureRecognizer.delegate = weakSelf; }}

@end

và kế thừa lớp này để điều khiển Navigation của bạn, nó sẽ làm việc hoàn hảo.

+1

Bạn chỉ có thể thực hiện 'self.interactivePopGestureRecognizer.delegate = self;'. Đại biểu được khai báo trong 'UIGestureRecognizer' là yếu. Bạn cũng không cần phải kiểm tra '[self respondsToSelector: ....]', trình biên dịch sẽ cung cấp cho bạn cảnh báo nếu nó không thực hiện giao thức. –

Các vấn đề liên quan