NavigationBar标题在更新时显示在backbuttonitem上

时间:2013-07-04 19:13:07

标签: iphone ios objective-c uinavigationbar

我在导航栏上显示pageviewcontroller的页面编号作为标题。当技术上翻页时,应在导航栏上更新当前页面编号。

在我的情况下,它正在更新当前页面编号,但页面编号在导航栏上显示为标题,它现在显示在更新后的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。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

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