0

ナビゲーション バーに現在のページ番号が表示されません。

8 の 0 を表示していますが、8 の 1 を表示する必要があります。

 - (void)viewDidLoad {

[super viewDidLoad];

//modelArray holds the page numbers
modelArray = [[NSMutableArray alloc] init];

for (int index = 1; index <= totalPages; index++) {

[modelArray addObject:[NSString stringWithFormat:@"%i", index]];

}

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

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

thePageViewController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStylePageCurl navigationOrientation: UIPageViewControllerNavigationOrientationHorizontal options:nil];

thePageViewController.delegate = self;
thePageViewController.dataSource = self;

thePageViewController.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;

contentViewController = [[ContentViewController alloc] initWithPDF:PDFDocument];
contentViewController.page = [modelArray objectAtIndex:0];
NSArray *viewControllers = [NSArray arrayWithObject:contentViewController];
[thePageViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil];

[self addChildViewController:thePageViewController];
[self.view addSubview:thePageViewController.view];
thePageViewController.view.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);

[thePageViewController didMoveToParentViewController:self];

//self.view.backgroundColor = [UIColor underPageBackgroundColor];
[self.view addSubview:_navBar];
}

インデックスを使用する代わりに、 currentIndex と pageNumber を使用してみました。インデックスを使用するだけで 8 の 46297464 が表示され、currentIndex または pageNumber を使用すると 8 の 0 が表示されますが、8 の 1 を表示する必要があります。

そして、それがpageviewcontrollerデータソースメソッドを使用する方法です

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

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

return contentViewController;

   }

手伝ってくれてありがとう。

4

0 に答える 0