UIPageViewController方向只能转发

目标是创build一个只能向前导航的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; } 

返回零应表明导航不可能(如文档中所述)。 不过,我总是可以向后滚动一页。 比方说,我有10页,我可以向前滚动所有页面,但在任何页面,我可以向后滚动1页。 (例如:在第5页,我可以回到第4页,在第8页,我可以回到第7页,等等。)

我知道我可以通过不使用数据源,并使用setViewControllers:direction:animated:completion:方法来避免这种情况,但我想知道为什么我的尝试失败。

这是当你的pageViewController的过渡风格设置为滚动时得到的行为 – 我不知道为什么,但它有一个滚动视图被插入到层次结构的某处(我可以看到如果我分配打开仪器运行我的项目)。 如果过渡是页面curl,那么如果返回零,则不会显示任何前一页。

所以,我认为你坚持使用setViewControllers:方向:animation:完成:除非你想切换到页面curlanimation。

Interesting Posts