2016-01-07 17 views
5

Tôi có bộ điều khiển chế độ xem mà tôi phủ lên trên một bộ điều khiển chế độ xem khác. Tôi chỉ cần bộ điều khiển xem đầu để tôi có thể che phủ một thông báo pop up tạm thời, và có một lớp phủ VC cho phép tôi trình bày điều này qua một UITableViewController vì bạn không thể thêm subviews vào bộ điều khiển tableview trực tiếp.Vượt qua các lần chạm qua UIViewController

Có thể tương tác với bộ điều khiển xem dưới cùng trong khi nó có bộ điều khiển chế độ xem khác che phủ nó hay không. Nếu đây là chế độ xem hoặc cửa sổ bạn sẽ đạt được điều này bằng cách đặt tương tác của người dùng thành false hoặc sử dụng hitTest nhưng không cách nào trong số các phương pháp này hoạt động cho bộ điều khiển chế độ xem.

+0

Chính xác bạn có ý gì khi "che"? Mối quan hệ giữa các bộ điều khiển xem này là gì? – matt

+0

VC1 gọi presentViewController (VC2). VC2 có modalPresentationStyle = .OverCurrentContext, backgroundColour.clear. Tôi muốn chạm để đăng ký trên VC1 không VC2. –

+0

là vc2.view một chế độ xem phụ của vc1.view? – lzl

Trả lời

1

Khi bạn đã suy luận chính xác, khi bạn trình bày một bộ điều khiển chế độ xem trên bộ điều khiển khác, chế độ xem của bộ điều khiển chế độ xem trình bày không nằm trong chuỗi phản hồi. Các chạm trong chế độ xem của trình điều khiển chế độ xem được trình bày do đó không thể "rơi qua" được. Bạn sẽ phải định tuyến thư của mình từ chế độ xem của trình điều khiển chế độ xem được trình bày theo cách khác.

1

Bạn không có quyền truy cập vào ViewController trước đó và người dùng không thể tương tác bằng cách chạm vào nó. Property modalPresentationStyle = .OverCurrentContext chỉ có nghĩa là các khung nhìn bên dưới nội dung được trình bày sẽ không bị loại bỏ khỏi hệ thống phân cấp khung nhìn.

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