我正在尝试实现基本UIPageviewController
示例。但是当我向右/向左快速滑动时,数据源方法viewcontrollerAfterViewController
将被调用两次。它仅在ios 7中发生。任何人都知道为什么会这样?
答案 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。
希望这会有所帮助.. :)