0

我所做的一切都是当用户翻页时更新导航栏。以下是我的代码更新导航栏

- (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]; 

[self updateNavigationBar]; 

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]; 

[self updateNavigationBar]; 

return contentViewController; 

} 

-(void) updateNavigationBar{ 

if (CGPDFDocumentGetNumberOfPages(PDFDocument) > 1) { 
    title = [NSString stringWithFormat:@"Page %u of %u", currentIndex - 1, CGPDFDocumentGetNumberOfPages(PDFDocument)]; 
} else if ((CGPDFDocumentGetNumberOfPages(PDFDocument) < 1) { 


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

} 

但似乎它不工作,我可以翻页但无法更新导航栏。

,这是导航栏

_navBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 45)]; 

_navBar.tintColor = [UIColor colorWithRed:243.0/255.0 green:164.0/255.0 blue:0.0/255.0 alpha:1.0]; 

title = [[UINavigationItem alloc] initWithTitle:[NSString stringWithFormat: 
                    @"Page %u of %u", 
                    currentIndex, 
                    CGPDFDocumentGetNumberOfPages(PDFDocument)]]; 
[_navBar pushNavigationItem:title animated:NO]; 

请帮的代码。

欣赏它。

谢谢。

回答

2

更新导航栏被更新的导航项目的完成:

_navBar.topItem.title = @"Custom title"; 
[_navBar pushNavigationItem:_navBar.topItem animated:NO]; 
+0

当我打开网页在它转换成标题的后退按钮项后退按钮项目和更新标题。 – user1120133

+0

当我点击backbuttonitem我可以看到标题滑动,并最终显示为后退项目 – user1120133

+1

在视图控制器上,您要更新导航栏标题(在'viewDidLoad'方法),只需更改当前目录的'navigationItem'的标题view controller:'self.navigationItem.title = @“Custom Title”;' – Malloc