1

我在导航栏上显示页码pageviewcontroller作为标题。当页面从技术上翻过来时,当前的页码应该在导航栏上更新。

在我的情况下,它正在更新 currentpagenumbers 但在导航栏上显示为标题的页码现在在更新后显示在 backbuttonitem 的顶部。这是为什么。我无法理解这一点。

到目前为止,我的导航栏上没有任何后退按钮项目,那么为什么实际上是页码的导航栏标题pageviewcontroller显示为后退按钮项目

这就是我为更新页码而编写的代码navbar

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController 
  viewControllerBeforeViewController:(UIViewController *)viewController 
{
    contentViewController = [[ContentViewController alloc] initWithPDF:PDFDocument];

    currentIndex = [modelArray indexOfObject:[(ContentViewController *)viewController  page]];

    if (currentIndex == 0) 
    {
        return nil;
    }

    contentViewController.page = [modelArray objectAtIndex:currentIndex - 1];
    _navBar.topItem.title = [NSString stringWithFormat:@"Page %u of %u", currentIndex - 1, CGPDFDocumentGetNumberOfPages(PDFDocument)];


    [_navBar pushNavigationItem:_navBar.topItem animated:NO];
    return contentViewController;
}

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController
   viewControllerAfterViewController:(UIViewController *)viewController 
{

    contentViewController = [[ContentViewController alloc] initWithPDF:PDFDocument];

    //get the current page
    currentIndex = [modelArray indexOfObject:[(ContentViewController *)viewController page]];


    if (currentIndex == totalPages - 1) {        
        return nil;
    }
    contentViewController.page = [modelArray objectAtIndex:currentIndex + 1];

    _navBar.topItem.title = [NSString stringWithFormat:@"Page %u of %u", currentIndex + 1, CGPDFDocumentGetNumberOfPages(PDFDocument)];


    [_navBar pushNavigationItem:_navBar.topItem animated:NO];

    return contentViewController;
}

如果有人能让我明白为什么会这样。为什么它没有像我编码的那样显示为标题,为什么它被转换为 backbuttonitem。

感谢帮助。

4

1 回答 1

1

这是 iOS 的默认行为,在导航视图控制器中,当视图控制器被推到视图控制器上时,前一个 VC 的标题会显示在后退按钮中作为按钮的文本。如果您不想显示,您可以隐藏导航栏的后退按钮项。

于 2013-07-05T06:50:11.833 回答