[ios]UIPageViewController 检查时刷卡后退或前进

发布时间: 2017/3/21 22:43:55
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我想要跟踪索引使用 UIPageViewController 。每当我刷我需要到 index++index-- 。只要你刷回或进一步,获取调用此委托的方法︰

- (void)pageViewController:(UIPageViewController *)pvc didFinishAnimating:(BOOL)finished previousViewControllers:(NSArray *)previousViewControllers transitionCompleted:(BOOL)completed
{
    // If the page did not turn
    if (!completed)
    {
        // You do nothing because whatever page you thought
        // the book was on before the gesture started is still the correct page
        return;
    }

    // I want to check here whenever the page was swiped back or further
}

如果用户刷回或进一步,我检查这个方法?我知道有 2 数据源方法"viewControllerAfterViewController"和"viewControllerBeforeViewController",但我不能检查如果页面转换已完成 (我能做到上述方法) 任何想法,我怎么能知道是否用户刷回或在上述方法中进一步?

解决方法 1:

根据文档不出现是一种方式告诉用户是否已刷页向前或向后。布尔值 '完成' 将告诉您用户已完成翻页。

解决方法︰

创建一个 int 变量和使用的 viewControllerAfterViewController 和 viewControllerBeforeViewController 的方法要么增加要么减少变量的值。用它来测试他们前移或后移。

编辑︰ 您可以使用 presentationIndexForPageViewController文档

编辑 2︰ 检查此链接在这里还有一种方法命名为 setViewControllers:direction:animated:completion: 的方向将会要么 UIPageViewControllerNavigationDirectionForwardUIPageViewControllerNavigationDirectionReverse

编辑 3︰ 代码-这假设你知道哪个视图控制器将由要么会向前或向后调用︰

你的 appDelegate 和 setter 方法创建一个变量︰

int indexVar;

- (void)setIndex:(int)indexVar;

然后在您的视图控制器 (向前或向后) 增加值或减小值 (viewDidLoad):

(AppDelegate *)[[UIApplication sharedApplication] delegate] setIndex:<whatever>];

类似这些行。这不会是准确的方式来完成你的目标,但希望它将得到你朝着正确的方向前进。

官方微信
官方QQ群
31647020