美文网首页
UIPageViewController

UIPageViewController

作者: 阿狸小朋友 | 来源:发表于2020-06-20 17:30 被阅读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;
    }
    
    

    相关文章

      网友评论

          本文标题:UIPageViewController

          本文链接:https://www.haomeiwen.com/subject/xxdgxktx.html