Iphone 更改UIPageViewController的值';设置变量后的viewControllerAfterViewController方法?

Iphone 更改UIPageViewController的值';设置变量后的viewControllerAfterViewController方法?,iphone,ios,objective-c,uipageviewcontroller,Iphone,Ios,Objective C,Uipageviewcontroller,我有一个UIPageViewController,它可以正常工作,每个页面上都有我的子视图控制器,一切都很好。在其中一个页面上,我希望这样,当该子视图控制器上的布尔值设置为“是”时,它允许用户滑动到下一个页面。如果没有,我希望他们在设置布尔值之前不能继续前进(尽管他们可以自由向后移动) 我在viewControllerAfterViewController方法中设置了这些值,但只有在将子视图控制器加载到UIPageViewController中时才会调用它。我希望在用户尝试刷卡时再次设置此选项,

我有一个UIPageViewController,它可以正常工作,每个页面上都有我的子视图控制器,一切都很好。在其中一个页面上,我希望这样,当该子视图控制器上的布尔值设置为“是”时,它允许用户滑动到下一个页面。如果没有,我希望他们在设置布尔值之前不能继续前进(尽管他们可以自由向后移动)

我在viewControllerAfterViewController方法中设置了这些值,但只有在将子视图控制器加载到UIPageViewController中时才会调用它。我希望在用户尝试刷卡时再次设置此选项,但有没有一种方法可以在不完全覆盖手势识别器的情况下执行此操作

这就是函数当前的功能,最初我检查了子视图控制器的布尔值,但由于从未调用过它,它最终没有用处。变量viewControllers是一个包含所有我的控制器的NSArray

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController {
    if ([viewControllers containsObject:viewController]) {
        NSInteger index = [viewControllers indexOfObject:viewController];
        if (index < [viewControllers count] - 1) {
            return [viewControllers objectAtIndex:(index + 1)];
        }
    }
    return nil;
}
-(UIViewController*)页面视图控制器:(UIPageViewController*)页面视图控制器viewControllerAfterViewController:(UIViewController*)视图控制器{
if([viewController包含对象:viewController]){
NSInteger索引=[viewControllers indexOfObject:viewController];
如果(索引<[ViewController计数]-1){
返回[viewControllers objectAtIndex:(索引+1)];
}
}
返回零;
}

只是浏览了一下文档,除了覆盖手势识别器之外,我没有其他选择。一旦你做到了,我看不出有什么办法可以替代偷看他们的操作选择器和重写,这充其量是脆弱的。我希望有人能为你找到更好的答案。我很好奇是否有。是的,这正是我担心的。谢谢你的再次检查!我也检查了文档,我真的想避免使用这种方法,因为我必须从本质上重写它们的分页机制,我同意这种机制非常脆弱:(我将以稍微不同的方式构建工作流,除非现在有更好的方法来实现这种方法。