我修复它的方式是这样的。
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController {
DSBookletPageViewController *currentVC = (DSBookletPageViewController *)viewController;
NSUInteger currentIndex = [currentVC index];
if(currentIndex >= self.modelArray.count-1) {
if (currentIndex %2 == 0 && !isPortrait) {
//return an empty one
DSBookletPageViewController *newVC = [[DSBookletPageViewController alloc] init];
[newVC setIndex:currentIndex+1];
return newVC;
} else {
return nil;
}
}
currentIndex ++;
UIImage *currentPage = [self.modelArray objectAtIndex:currentIndex];
DSBookletPageViewController *newVC = [[DSBookletPageViewController alloc] initWithImage:currentPage andOrientation:isPortrait];
[newVC setIndex:currentIndex];
return newVC;
}
我基本上检查我是否在数组的末尾,或者超出它,因为我在我的模型数组之外向 UIPageViewController 添加了另一个页面。如果我在那里,并且当前索引是偶数并且我们不是纵向的,那么我添加页面,如果不是,那么我返回 nil。
我希望这会有所帮助。