我想在viewControllers之间使用PageViewController
进行分页
在我按照教程
(它是为了使用相同的 viewController与不同的内容),但我在四个不同 ViewControllers之间进行分页
问题是有时我导航到某个页面然后它会消失或两次翻页到同一页面 我发现类似的问题没有答案:(
这是我的代码
@implementation MainViewController {
UIPageViewController *pageViewController;
int pageIndex;
NSMutableArray* viewControllers;
}
- (void)viewDidLoad {
[super viewDidLoad];
viewControllers = [NSMutableArray new];
[viewControllers addObject:[self.storyboard instantiateViewControllerWithIdentifier:@"1"]];
[viewControllers addObject:[self.storyboard instantiateViewControllerWithIdentifier:@"2"]];
[viewControllers addObject:[self.storyboard instantiateViewControllerWithIdentifier:@"3"]];
[viewControllers addObject:[self.storyboard instantiateViewControllerWithIdentifier:@"profileVC"] ];
pageIndex = 3; // starting with the last one
pageViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"PageViewController"];
[pageViewController setDataSource:self];
pageViewController.delegate = self;
UIViewController *startVC = viewControllers[3];
[pageViewController setViewControllers:@[startVC] direction:UIPageViewControllerNavigationDirectionForward animated:YES completion:nil];
pageViewController.view.frame = CGRectMake(0, 120, self.view.frame.size.width, self.view.frame.size.height );
[self addChildViewController:pageViewController];
[self.view addSubview:pageViewController.view];
[pageViewController didMoveToParentViewController:self];
}
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController{
if (pageIndex == 0 || pageIndex == NSNotFound) {
return nil;
}
return viewControllers[--pageIndex];
}
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController{
if (pageIndex == [viewControllers count] - 1 ) {
return nil;
}
return viewControllers[++pageIndex];
}