UIPAGEVIEWCONTROLLER快速滑动时称为Twice的数据源方法

时间:2014-02-14 06:31:20

标签: objective-c datasource uigesturerecognizer uipageviewcontroller

我正在尝试实现基本UIPageviewController示例。但是当我向右/向左快速滑动时,数据源方法viewcontrollerAfterViewController将被调用两次。它仅在ios 7中发生。任何人都知道为什么会这样?

1 个答案:

答案 0 :(得分:1)

UIPageViewController使用这些波纹管方法获取后面和前面的ViewController。

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController;
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController;

虽然它很奇怪但是它是一个已知的问题。每次调用Before和After方法获取VC。它没有下一个VC然后返回nil,如果没有先前的VC,datasourceDelegate返回nil,否则返回VC的索引。

UIPageViewControllerDelegate中,有一个名为:

的函数
- (void)pageViewController:(UIPageViewController *)pageViewController willTransitionToViewControllers:(NSArray *)pendingViewControllers;

看看这可能有助于从pendingViewControllers数组中获取当前或下一个/上一个viewcontroller。

希望这会有所帮助.. :)