2013-06-27 2 views
27

Мое приложение продолжает сбой, когда я устанавливаю несколько контроллеров представления в своем приложении, как показано ниже.Класс uipageviewcontroller сбой при настройке нескольких контроллеров просмотра

[self setViewControllers:_images direction:UIPageViewControllerNavigationDirectionForward animated:YES completion:NULL]; 

Мои изображения представляют собой массив контроллеров.

Приложение аварийно сканирует следующую ошибку. Я не знаю, с чего начать.

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'The number of view controllers provided (9) doesn't match the number required (1) for the requested transition 

ответ

46

Как говорится в ошибке, вы предоставляете больше контроллеров просмотра, чем необходимо. Вы должны предоставить только 1 контроллер вида в массиве. Затем используйте методы dataSource контроллера просмотра страниц, чтобы обеспечить правильность до и после контроллеров представлений.

+0

Я хочу знать, на каком контроллере представления находится мой пользователь, и событие при каждом перетаскивании для перехода к следующему контроллеру. Для этого я попытался использовать - (void) pageViewController: (UIPageViewController *) pageViewController сделалFinishAnimating: (BOOL) завершил предыдущие контрольные элементы: (NSArray *) previousViewControllers transitionCompleted: (BOOL) завершено. Но это не вызвало. Я правильно установил делегат и источник данных. –

+0

Вы можете получить экземпляр контроллера текущего вида, перейдя к свойству массива вида viewViewController как [[viewViewController viewControllers] objectAtIndex: 0]; в вышеуказанном делегате. Для того, чтобы делегат не звонил, проверьте, где вы установили dataSource и делегат. – Zen

+0

Извините, моя ошибка. Я дважды писал datasource, вместо одного источника данных и делегирования в коде. –

-3

UIPageViewController в iOS имеет некоторые ошибки. Используйте UIScrollView + NSArray UIViewController вместо этого! Возможно, это поможет. http://weijun.me/post/develop/2015-11-26

+0

Я бы не сказал, что это багги, насколько это сложно использовать и не очень настраиваемо. Я бы рекомендовал использовать его только в том случае, если вам нужна анимация «поворот страницы». Если вам нужен прокручиваемый просмотр прокрутки с обычной прокруткой, а элемент управления страницами, чем UIScrollView, проще в использовании. – moger777