UIPageViewController

2020-06-20  本文已影响0人  阿狸小朋友
- (void)viewDidLoad {
    [super viewDidLoad];

    [self addChildViewController:self.pageViewController];
    [self.pageViewController didMoveToParentViewController:self];

    [self.view addSubview:self.pageViewController.view];
    self.pageViewController.view.frame = CGRectMake(0, 0, CGRectGetWidth(self.view.frame),  CGRectGetHeight(self.view.frame) - 49);

     UIViewController *VC = [[JXHomeworkNoSubmitLibDetailWebViewController alloc] initWithData:self.dataArray[0]];
    [self.pageViewController setViewControllers:@[VC] direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil];

}
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController
{
    JXHomeworkNoSubmitLibDetailWebViewController *VC = (JXHomeworkNoSubmitLibDetailWebViewController *)viewController;
    NSInteger index = VC.index;
    
    if (index == 0) {
        return nil;
    }
    
    index--;
    
    return [self _detailVCAtIndex:index];
}

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController
{
    JXHomeworkNoSubmitLibDetailWebViewController *VC = (JXHomeworkNoSubmitLibDetailWebViewController *)viewController;
    NSInteger index = VC.index;
    
    if (index == self.dataArray.count) {
        return nil;
    }
    
    index++;
    self.currentIndex = index;
    return [self _detailVCAtIndex:index];
}

- (NSInteger)presentationCountForPageViewController:(UIPageViewController *)pageViewController
{
    return self.dataArray.count;
}

- (NSInteger)presentationIndexForPageViewController:(UIPageViewController *)pageViewController
{
    return self.currentIndex;
}

- (UIViewController *)_detailVCAtIndex:(NSInteger)index
{
    if (index >= self.dataArray.count || self.dataArray.count == 0) {
        return nil;
    }
    
    JXHomeworkNoSubmitLibDetailWebViewController *VC = [[JXHomeworkNoSubmitLibDetailWebViewController alloc] initWithData:nil];
    VC.index = index;
    VC.detail = self.dataArray[index];
    return VC;
}

- (UIPageViewController *)pageViewController
{
    if (!_pageViewController) {
        NSDictionary *option = [NSDictionary dictionaryWithObject:@20 forKey:UIPageViewControllerOptionInterPageSpacingKey];
        _pageViewController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:option];
        _pageViewController.delegate = self;
        _pageViewController.dataSource = self;
    }
    return _pageViewController;
}

- (NSMutableArray *)dataArray
{
    if (!_dataArray) {
        _dataArray = [NSMutableArray array];
    }
    return _dataArray;
}

上一篇下一篇

猜你喜欢

热点阅读