ios - 如何在 iOS 中自动滚动页面 View Controller ?

标签 ios objective-c uipageviewcontroller uipagecontrol

在我的应用程序中。我想设计教程屏幕,我正在使用页面 View Controller 。我希望我的页面 View Controller 自动滚动并且页面控件也更新。

帮我。

-(UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController{

    NSUInteger index=((PageContantViewController *)viewController).pageIndex;
    if(index==NSNotFound){
        return nil;
    }
    index++;
    if(index==[self.pageTitles  count]){
        return nil;
    }
    return [self viewControllerAtIndex:index];
}

-(UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController{

    NSUInteger index= ((PageContantViewController *)viewController).pageIndex;
    if(index==0 || index==NSNotFound){
        return nil;
    }
    index--;
    return [self viewControllerAtIndex:index];
}

- (PageContantViewController *)viewControllerAtIndex:(NSUInteger)index{
    if([self.pageTitles count]==0 || index>=[self.pageTitles count]){
        return  nil;
    }
    PageContantViewController *contantVC=[self.storyboard instantiateViewControllerWithIdentifier:@"pageContantViewController"];
    contantVC.titleText= _pageTitles[index];
    contantVC.imageFile= _pageImages[index];
    contantVC.pageIndex= index;

    return contantVC;
}

-(NSInteger)presentationCountForPageViewController:(UIPageViewController *)pageViewController{
    return [_pageTitles count];
}

-(NSInteger)presentationIndexForPageViewController:(UIPageViewController *)pageViewController{
    return 0;
}

最佳答案

请使用此代码它将对您有所帮助

- (void)viewDidLoad {
    [super viewDidLoad];

    currentIndex = 0;
    self.delegate = self;
    self.dataSource = self
    // setup time interval here

    [NSTimer scheduledTimerWithTimeInterval:10.0
                                     target:self
                                   selector:@selector(loadNextController)
                                   userInfo:nil
                                    repeats:YES];

    // set main controller
    NSArray *mainViewControllers = @[[self  viewControllerAtIndex:self.index]];

    [self setViewControllers: startingViewControllers
                   direction: UIPageViewControllerNavigationDirectionForward
                    animated: YES
                  completion: nil];
}
- (NSInteger)presentationIndexForPageViewController:(UIPageViewController *)pageViewController
{
    return currentIndex;
}

- (void)loadNextController {

    PageContentViewController *nextViewController = [self viewControllerAtIndex:currentIndex++];
    if (nextViewController == nil) {

        currentIndex = 0;
        nextViewController = [self viewControllerAtIndex:currentIndex];
    }

    [self setViewControllers:@[nextViewController]
                   direction:UIPageViewControllerNavigationDirectionForward
                    animated:YES
                  completion:nil];
}

关于ios - 如何在 iOS 中自动滚动页面 View Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38324192/

相关文章:

ios - 核心数据更新旧项目,创建新记录

ios - UIPickerView 显示但不加载数据

ios - 在 Swift 子类中添加便利构造器

iphone - 如何编写一个可以带参数的宏?

iOS Swift 页面 View Controller

android - 从网络加载图像时收到“在收到完整 header 之前关闭连接

objective-c - 带有背景图片的 UIScrollView

objective-c - 为什么 clang 优化会破坏我的内联汇编代码?

ios - 如何使用 uiviewcontroller/storyboard 上的 uibutton 在 uipageviewcontroller 中推进页面

iphone - 加速 UIPageViewController