Có giải pháp sạch nào về việc gọi lại hoặc sự kiện trên bộ điều khiển chế độ xem bị loại bỏ (popped) theo số interactivePopGestureRecognizer
không?Nhận tương tácPopGestureRecognizer loại bỏ gọi lại/sự kiện
Để rõ ràng, tôi cần một số phương thức rõ ràng được gọi trên bộ điều khiển cao nhất (và không có cách nào khác) trước khi bộ điều khiển được bật bởi trình nhận dạng cử chỉ này. Tôi không muốn nhận sự kiện trên bộ điều khiển điều hướng và gửi sự kiện đến bộ điều khiển thích hợp và tôi không muốn sử dụng viewWillAppear
hoặc viewWillDissapear
...
Điều gần nhất tôi có là thêm cặp mục tiêu/bộ chọn cử chỉ chỉ có 2 vấn đề. Trước tiên, tôi không thể nhận được thông tin trực tiếp nếu bộ điều khiển sẽ bị loại bỏ hay không (UIGestureRecognizerStateEnded
sẽ kích hoạt trong mọi trường hợp). Thứ hai sau khi bộ điều khiển được loại bỏ tôi cần phải loại bỏ các mục tiêu từ người nhận ra.
Lý do cho điều này là tôi có một vài bộ điều khiển cần gửi một số thông tin cho đại biểu của họ. Với các nút "thực hiện" và "hủy", sự kiện được kích hoạt, các phương thức ủy nhiệm sẽ được gọi và sau đó bộ điều khiển sẽ xuất hiện. Tôi cần khá nhiều điều tương tự để xảy ra với ít nhất là thay đổi mã càng tốt.
Một tình huống khác trên cử chỉ này là khả năng ném cảnh báo và hoàn nguyên hành động: Có cách hiển thị cảnh báo khi cử chỉ này kết thúc hỏi "bạn có chắc chắn muốn hủy công việc của mình" và có người dùng không chọn nếu bộ điều khiển sẽ được bật hoặc đưa trở lại.
Sự cố thú vị. Tôi có cảm giác bạn cần phải tắt 'interactivePopGestureRecognizer' và đăng ký của riêng bạn hoặc sử dụng [chuyển đổi tương tác] của iOS 7 (http://www.objc.io/issue-5/view-controller-transitions.html) –
Tôi sợ bạn có thể đúng. Có vẻ kỳ lạ đây không phải là một vấn đề phổ biến. Tôi mong đợi một vài ứng dụng cần phải thực hiện điều này ít nhất tại một số điểm.Điều tồi tệ nhất về việc thực hiện quá trình chuyển đổi tùy chỉnh là bạn phải vô hiệu hóa một cách rõ ràng cử chỉ trên mỗi bộ điều khiển đó và có thể bật lại nó sau khi được bật (hoặc một lần khác được đẩy). –