edit1 start:
вы можете поместить UITapGestureRecognizer в m_overlayView и initWithTarget: действие your-middleview: some-method-in-middleview
Теперь в вашем middleview вы можете идентифицировать распознаватель.state как UIGestureRecognizerStateBegan, Ended и т. д. и делать то, что вы хотите сделать.
edit1 end:
Вы можете отладить его.Просто используйте логи touchesbegan
на всех ваших контроллерах.По логам будет понятно последовательность сенсорных ответов.
Хорошо ... так что это описание метода из документации может вам ответить.Ваши m_overlayView
и nextController.view
относятся друг к другу как братья и сестры, а не как супервизоры.Таким образом, ваше прикосновение к одному из них будет сообщено не другому, а основанию superview
, которое является общим superview
для обоих братьев и сестер.
Следовательно, вы получаете, что средний слой обойден.На самом деле ваш средний уровень - это брат, а не супервизор.Надеюсь, что, по крайней мере, это даст вам некоторый путь вперед;)
insertSubview:belowSubview:
Вставляет представление под другим представлением в иерархию представлений.
(void)insertSubview:(UIView *)view belowSubview:(UIView *)siblingSubview
Параметры :
view
Вид для вставки под другим видом.Он удаляется из superview
, если он не является родным братом siblingSubview.
siblingSubview :
Родственный вид, который будет выше вставленного вида.
Обсуждение :
Этот метод сохраняет представление и устанавливает следующий респондент для получателя, который является его новым superview
.
Представления могут иметь только одно суперпредставление.Если представление уже имеет superview
и это представление не является получателем, этот метод удаляет предыдущий superview
перед тем, как сделать получатель новым superview
.