iPad - PageViewController - Показать следующий контроллер просмотра при нажатии кнопки - PullRequest
1 голос
/ 27 октября 2011


Я использую UIPageViewController в своем приложении, которое показывает все изображения, похожие на книгу.Работает нормально.
Что я хочу сделать сейчас:
Я хочу поместить кнопку в верхнем левом углу, и при щелчке на ней отобразится контроллер всплывающих окон, который имеет табличное представление с 7 ячейками.Каждая ячейка будет показывать разные URL.При щелчке по ячейке таблицы будет отображаться контроллер представления с веб-представлением.

В чем проблема? Проблема в том, что я поместил кнопку в левом верхнем углу и создал переход для отображения всплывающего окна.Но по нажатию кнопки он переходит на предыдущую страницу, а при следующих щелчках он, наконец, достигает страницы 1. Затем на странице 1 отображается всплывающее окно.Я не понимаю, почему это происходит так.

И даже после показа popover на следующем веб-сайте не отображается следующий вид.

Как это сделать?

1 Ответ

5 голосов
/ 20 ноября 2011

Хитрость в том, что распознаватели жестов UIPageViewController занимают эту область.В частности, обработчик крана;таким образом, ваша кнопка будет нажата только тогда, когда распознаватель касаний не воспринимает ее как смысл перехода на предыдущую страницу.

Самое быстрое решение - установить для себя делегат его распознавателей

for (UIGestureRecognizer *recognizer in pageViewController.gestureRecognizers)
  recognizer.delegate = self;

и затем внедрите делегата, говорящего им, чтобы элементы управления получили прикосновения

- (BOOL)gestureRecognizer:(UIGestureRecognizer *) __unused gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
   if ([touch.view isKindOfClass:[UIControl class]])
      return NO;
   return YES;
}

, которые должны хорошо вас отсортировать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...