我有一个按预期工作的UIPageViewController,它在每个页面上都有我的子视图控制器,一切都很棒。在其中一个页面上,我想要它,以便在该子视图控制器上将布尔值设置为YES时,它允许用户滑动到下一页。如果没有,我希望他们不能继续前进,直到设置布尔值(他们应该可以向后移动)。
我在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;
}