【发布时间】:2014-03-13 09:36:18
【问题描述】:
我正在尝试实现基本的UIPageviewController 示例。但是当我在右/左方向快速滑动时,数据源方法viewcontrollerAfterViewController 被调用了两次。它仅在 ios 7 中发生。有谁知道为什么会这样?
【问题讨论】:
标签: objective-c datasource uigesturerecognizer uipageviewcontroller
我正在尝试实现基本的UIPageviewController 示例。但是当我在右/左方向快速滑动时,数据源方法viewcontrollerAfterViewController 被调用了两次。它仅在 ios 7 中发生。有谁知道为什么会这样?
【问题讨论】:
标签: objective-c datasource uigesturerecognizer uipageviewcontroller
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 数组中获取当前或下一个/上一个视图控制器。
希望这会有所帮助.. :)
【讨论】: