Ios UIPageViewController按顺序显示页面,并且从不调用ViewControllerBeforReviewController
我有一个UIPageViewController,我在上实现了两个可选方法来获得自动UIPageControl 我有以下助手方法,可以在索引和视图控制器之间进行转换Ios UIPageViewController按顺序显示页面,并且从不调用ViewControllerBeforReviewController,ios,uipageviewcontroller,uipagecontrol,Ios,Uipageviewcontroller,Uipagecontrol,我有一个UIPageViewController,我在上实现了两个可选方法来获得自动UIPageControl 我有以下助手方法,可以在索引和视图控制器之间进行转换 - (UIViewController *)viewControllerForIndex:(NSInteger)index; - (NSInteger)indexFromViewController:(UIViewController *)viewController; 第一种方法创建一个新的视图控制器,将自身配置为特定索引,并将
- (UIViewController *)viewControllerForIndex:(NSInteger)index;
- (NSInteger)indexFromViewController:(UIViewController *)viewController;
第一种方法创建一个新的视图控制器,将自身配置为特定索引,并将该索引存储在可检索的位置(即第二种方法访问的位置)
我使用以下代码实例化我的页面视图控制器:
[pageViewController setViewControllers:@[[self viewControllerForIndex:0]]
direction:UIPageViewControllerNavigationDirectionForward
animated:NO
completion:nil];
以下是我的数据源方法:
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController {
NSInteger currentIndex = [self indexFromViewController:viewController];
if (currentIndex == 0) {
return nil;
} else {
return [self viewControllerForIndex:currentIndex-1];
}
}
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController {
NSInteger currentIndex = [self indexFromViewController:viewController];
if (currentIndex == self.data.count - 1) {
return nil;
} else {
return [self viewControllerForIndex:currentIndex+1];
}
}
- (NSInteger)presentationCountForPageViewController:(UIPageViewController *)pageViewController {
return self.data.count;
}
- (NSInteger)presentationIndexForPageViewController:(UIPageViewController *)pageViewController {
return 0;
}
当我向前导航时,一切正常,当我向后导航时,视图控制器开始以随机顺序出现
我相信这与pageViewController:ViewControllerBeforReviewController:从未被调用有关。页面视图控制器仅调用pageViewController:viewControllerAfterViewController:,即使我开始向后滑动
UIPageViewController在情节提要中的配置如下:
- 导航:水平
- 过渡样式:滚动
- 脊椎位置:无
- 双面:没有