Ios PageViewController是否错误显示页面索引?

Ios PageViewController是否错误显示页面索引?,ios,objective-c,uipageviewcontroller,Ios,Objective C,Uipageviewcontroller,我按照本教程创建了PageViewController 问题是我读错了这一页,其余的都很完美 我需要做一些事情,比如如果页面索引是最后一个索引,那么我必须更改按钮标签 - (PageContentViewController *)viewControllerAtIndex:(NSUInteger)index { if (([self.pageImages count] == 0) || (index >= [self.pageImages count])) { re

我按照本教程创建了PageViewController 问题是我读错了这一页,其余的都很完美

我需要做一些事情,比如如果页面索引是最后一个索引,那么我必须更改按钮标签

- (PageContentViewController *)viewControllerAtIndex:(NSUInteger)index
{
    if (([self.pageImages count] == 0) || (index >= [self.pageImages count])) {
        return nil;
    }

    // Create a new view controller and pass suitable data.
    PageContentViewController *pageContentViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"PageContentViewController"];
    pageContentViewController.imageFile = self.pageImages[index];
    pageContentViewController.titleText = self.pageTitles[index];

    pageContentViewController.pageIndex = index;

    NSLog(@"INDEX : %lu", (unsigned long)index);

    return pageContentViewController;
}

- (void)pageViewController:(UIPageViewController *)pageViewCntr didFinishAnimating:(BOOL)finished previousViewControllers:(NSArray *)previousViewControllers transitionCompleted:(BOOL)completed
{
    NSInteger currentIndex = ((UIViewController *)self.pageViewController.viewControllers.firstObject).view.tag;
    if (completed) pageControl.currentPage = currentIndex;
}

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController
{
    NSInteger index = ((PageContentViewController *)viewController).pageIndex;

    if (index == NSNotFound || !index) return nil;
    NSLog(@"INDEX : %lu", (unsigned long)index);
    return [self viewControllerAtIndex:index-1];
}

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController
{
    NSInteger index = ((PageContentViewController *)viewController).pageIndex;

    if (index == NSNotFound || index == pageCount-1) return nil;
    NSLog(@"INDEX : %lu", (unsigned long)index);
    return [self viewControllerAtIndex:index+1];
}



- (NSInteger)presentationCountForPageViewController:(UIPageViewController *)pageViewController{

    return [self.pageImages count];

}

- (NSInteger)presentationIndexForPageViewController:(UIPageViewController *)pageViewController{

    return 0;
}
我试了很多方法,但都没能解决这个问题

帮助我查找页面的当前索引。
当我刷一次时,页面的索引当前不显示,它一次返回0,1个索引,下一次刷时,它显示2个索引,下一次刷时,它不返回任何索引

我实现了相同的代码,调试后,知道调用了两次
PageViewControllerDataSource
方法。因此,您可以使用
willTransitionOnViewController
方法而不是
ViewControllerBeforReviewController
viewControllerAfterViewController
方法来获取适当的索引

请参考以下答案:


什么页面内容ViewController.pageIndex是最后一页时打印?你有多少页?@SanketBhavsar它从左到右和从右到左显示不同的索引它是不正确的索引你如何调用显示的方法?它有什么作用?您希望它返回/执行什么操作?您能给我提供更多的解释吗
WillTransitionOnViewController
在转换未完成时仍将被调用,因此不应用于跟踪索引。