【问题标题】:UIPAGEVIEWCONTROLLER Datasource methods called Twice on Fast SwipeUIPAGEVIEWCONTROLLER 数据源方法在快速滑动时调用两次
【发布时间】:2014-03-13 09:36:18
【问题描述】:

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

【问题讨论】:

标签: objective-c datasource uigesturerecognizer uipageviewcontroller


【解决方案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 数组中获取当前或下一个/上一个视图控制器。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-20
    • 2011-10-15
    • 1970-01-01
    相关资源
    最近更新 更多