Я пытаюсь закрыть всплывающее меню, если пользователь выбирает где-нибудь, ЗА ИСКЛЮЧЕНИЕМ границ самого всплывающего окна. Другими словами выбирают фон, всплывающее окно закрывается.
В настоящее время у меня есть RootViewController, который загружает UIView с кучей других элементов пользовательского интерфейса. В какой-то момент отображается всплывающее (настраиваемое) меню - это отдельный UIViewController со связанным .xib. Его загружают на экран:
SectionsChooserViewController *cv = [[SectionsChooserViewController alloc] initWithNibName:@"SectionsChooserViewController" bundle:[NSBundle mainBundle]];
cv.view.frame = CGRectMake(584, 391, 314, 346);
cv.delegate = self;
Этот вид занимает лишь небольшую часть экрана. Таким образом, добавленный код обнаружения касаний к этому представлению будет регистрировать обратный вызов, только если вы находитесь в представлении.
Если я не обрабатываю касания в «SectionsChooserViewController» и вместо этого реализую touchesBegan в rootViewController (который загружает «SectionsChooser ...»), он не вызывается для 90% представления, потому что UIScrollView, который у меня есть, кажется чтобы зарегистрировать прикосновение, а не передать его дальше.
Есть ли способ заставить UIScrollView передать событие касания?
Изменить: по крайней мере, я думаю, что UIScrollView принимает событие касания. Я не уверен - у меня на странице около 20 элементов управления пользовательским интерфейсом.
Изменить: Хорошо, это UIScrollView. Если я отключу взаимодействие с обоими scrollView, UIView получит прикосновения, но это сломает UIScrollViews - так что это не сработает.