目标是创建一个只能向前导航的 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:方法来避免这种情况,但我想了解为什么我的尝试失败了。