7

Ngay sau khi tôi thêm mục nút thanh điều hướng trên thanh tùy chỉnh, tôi đã mất khả năng sử dụng chức năng mặc định để quay lại. Tôi muốn có khả năng sử dụng "vuốt từ cạnh" để quay lại.Trình điều khiển chế độ xem cửa sổ sử dụng công cụ nhận dạng cử chỉ cạnh màn hình không theo ngón tay cái

Tôi đã thêm Trình nhận biết cử chỉ Edge Pan và kết nối nó với @IBAction, nhưng hành động loại bỏ xảy ra hoàn toàn ngay khi cử chỉ di chuyển được nhận dạng.

Thay vì từ từ theo ngón tay cái của tôi (như được thấy trong các ứng dụng khác), chế độ xem hiện tại sẽ di chuyển với hoạt ảnh được xác định trước.

Làm cách nào để tạo hoạt ảnh theo ngón cái của tôi bằng Trình nhận biết cử chỉ Edge Pan?

@IBAction func edgeSwipe(sender: AnyObject) { 
    navigationController?.popViewControllerAnimated(true) 
} 

enter image description here

+1

Tại sao cử chỉ được cung cấp bởi hệ thống không hoạt động? Bạn đã thử [this] (http://stackoverflow.com/a/28919337/5442445) chưa? – beyowulf

+0

@beyowulf Nó không hoạt động vì tôi đã thêm một nút vào mục nút bên trái. Tôi đã thêm một nút ở đây vì tôi muốn có quyền truy cập vào một số tính năng tạo kiểu của UIButton. Tuy nhiên, thêm một mục Bar Button bình thường (nếu bạn chỉ muốn tùy chỉnh tiêu đề) cũng làm cho hệ thống cung cấp cử chỉ để ngừng hoạt động. Và đối với phần thứ hai: Tôi đã theo dõi liên kết của bạn ngay bây giờ và tôi đã có thể đạt được cùng một hành vi cho swiping trở lại như thực hiện hệ thống mặc định. – Andrej

+0

@ beyowulf, bạn đã chỉ cho tôi đúng hướng và tôi muốn trao cho bạn một khoản tiền thưởng. Nhưng cách duy nhất để làm điều đó là nếu bạn cung cấp câu trả lời. Vì vậy, nếu bạn cung cấp ít nhất chỉ là một câu trả lời đơn giản bạn nhận được một tiền thưởng, nó thuộc vào bạn :) – Andrej

Trả lời

6

Không cần thêm Cạnh Pan Gesture Recogniser. Theo gợi ý của @ beyowulf tôi đã có thể thực hiện thao tác vuốt để quay lại tính năng hoạt động theo cách tương tự như triển khai hệ thống mặc định - cạnh cạnh sau ngón tay cái của tôi khi tôi vuốt nó để loại bỏ nó.

Vì vậy, tôi đã xóa ScreenEdge Pan Gesture Recogniser khỏi bảng phân cảnh và cũng đã xóa @IBAction có liên quan.

Tôi đã đặt bộ điều khiển chế độ xem đầu tiên làm đại biểu cho interactivePopGestureRecognizer. Đây là mã:

class ViewController: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     navigationController?.interactivePopGestureRecognizer?.delegate = self 
    } 
} 

extension ViewController: UIGestureRecognizerDelegate { 

    func gestureRecognizerShouldBegin(gestureRecognizer: UIGestureRecognizer) -> Bool { 
     return navigationController?.viewControllers.count > 1 ? true : false 
    } 
} 
Các vấn đề liên quan