Переадресация прикосновений к UINavigationController Интерактивный поп-жест не полностью работает
Я пытаюсь включить интерактивный распознаватель поп-жестов на дополнительном экране клавиатуры. Это не работает по умолчанию.
Я передал интерактивную ссылку на распознаватель жестов для всплывающих окон на свое вспомогательное представление, чтобы переслать события касания в распознаватель
Это особенно работает: название панели навигации изменяется, а фон вспомогательного представления отображает представление предыдущего контроллера, как если бы переход действительно начался. Но сам вид сверху остается на месте, даже если распознаватель жестов завершает отслеживание.
Я также попытался перенаправить сенсорные события на сам контроллер навигации, на его вид, на его контроллер сверху и на их окно. Ничего не изменилось даже после пересылки всем им одновременно
Есть идеи, чего не хватает?
1 ответ
Похоже, что невозможно повторно использовать экземпляры сенсорных событий в цепочке респондента. Однажды sendEvent:
на UIWindow
называется, уже есть определенный вид, владеющий прикосновением, поэтому нет смысла пересылать UIEvent
экземпляры для других взглядов или их распознаватели жестов.
Однако собственник может пересылать события на nextResponder()
s (например: один из распознавателей жестов, прикрепленный к этому представлению или к одному из подпредставлений представления)
Единственный шанс перенаправить касания в другое представление (из другой иерархии представлений) или в распознаватели жестов другого представления - до UITouch
создание объекта: т.е. на UIWindow
уровень во время hitTest:withEvent:
вызов метода, который вызывает pointInside:withEvent:
метод
Во всяком случае, я не уверен, можно ли перенаправить касания с одного UIWindow
другому. Обновлю ответ позже