Цель состоит в том, чтобы создать UIPageViewController, который может перемещаться только вперед. Я использую источник данных для предоставления контента для UIPageViewController. Для направления задано значение UIPageViewControllerNavigationDirectionForward, стиль перехода — UIPageViewControllerTransitionStyleScroll.
Реализация
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController
{
// returns the next view controller
}
возвращает следующий контроллер представления, в то время как следующее должно гарантировать, что навигация назад невозможна
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController
{
return nil;
}
Возврат nil должен указывать на то, что навигация невозможна (как указано в документации). Тем не менее, я всегда могу прокрутить одну страницу назад. Допустим, у меня есть 10 страниц, я могу прокручивать вперед все страницы, но на любой странице я могу прокручивать 1 страницу назад. (Например: на странице 5 я могу вернуться на страницу 4, на странице 8 я могу вернуться на страницу 7 и так далее.)
Я знаю, что могу избежать этого, не используя источник данных и используя метод setViewControllers:direction:animated:completion:, но я хотел бы понять, почему моя попытка не удалась.