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

助けてください。

感謝します。

ありがとう。

4

1 に答える 1

2

ナビゲーション バーの更新は、ナビゲーション アイテムを更新することによって行われます。

 _navBar.topItem.title = @"Custom title";
[_navBar pushNavigationItem:_navBar.topItem animated:NO];
于 2013-07-04T15:55:43.253 に答える