0

我有一个按预期工作的 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;
}
4

0 回答 0