2016-06-02 2 views
1

У меня есть UIPageViewController, который отображает изображения с Transition style scroll. Я хочу обрабатывать tap и pan жесты, поэтому для этого я немного взломал еще один view поверх uipageviewcontroller и назначил tap и pan распознаватели жеста. В этом случае я использую -setViewControllers:direction:animated:completion:, чтобы выполнить swipes, когда я обнаруживаю жесты панорамирования влево или вправо.UIPageViewController программно разрешает вызов источника данных

Моя проблема заключается в том, что при использовании -setViewControllers:direction:animated:completion: методы источника данных viewControllerBeforeViewController и viewControllerAfterViewController не вызываются. Также метод Делегат -pageViewController:didFinishAnimating:previousViewControllers:transitionCompleted: не получает обратный вызов.

Что мне нужно сделать для этих методов, которые будут называться с помощью setViewControllers?

ответ

2

Я думаю, что вы можете получить UIPageController-х gesture recognisers, и использовать их для отключения или включения взаимодействия UIPageController с помощью метода UIGestureRecogniser:

- (void)requireGestureRecognizerToFail:(UIGestureRecognizer *)otherGestureRecognizer 

Если вы используете setViewControllers ... методы dataSource не будет вызываться, потому что вы предоставили viewControllers. Также вы можете обработать завершение появляющейся анимации в блоке завершения этого метода. (Вы можете вызвать методы DataSource и делегата по себе)

UPD

Когда я тот же задача, я реализовал вид пользовательских страниц (на основе UIScrollView в страницах состоянии), и использовал жест recognisers из scrollView, чтобы избежать прокрутки, в то время как жест жестка распознается внутри некоторой страницы. Я не могу вспомнить, почему я внедрил пользовательский контроль, может быть, потому, что я не могу найти решение для той же проблемы. Я помню, что в моем представлении страницы использовался dataSource, чтобы получать просмотры для страниц. Я думаю, вы можете реализовать пользовательский контроль с помощью специальной логики.

+0

UIPageViewController с типом перехода Стиль не возвращает никаких распознавателей жестов. это только из-за завивки страницы перехода :( – binsnoel

+0

Вы правы, я ошибаюсь. Я обновляю ответ. –

+0

Спасибо, когда вы упомянули, я могу обработать блок завершения себя, это дало мне идею решить мою проблема. Должен ли я отметить это как ответ или должен ли я отправить решение в качестве другого ответа? – binsnoel

Смежные вопросы