PageViewController delegate functions called twice

后端 未结 3 846
心在旅途
心在旅途 2020-12-06 10:42

I am working with UIPageViewController , to make a product tour for my application.

I followed this link http://www.appcoda.com/uipageviewcontroller-tutorial-intro/<

3条回答
  •  悲哀的现实
    2020-12-06 11:04

    Replace these two methods and compile,

    - (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController {
    
        NSUInteger index = [(APPChildViewController *)viewController index];
        if (index == 0)
        {
            self. view.backgroundColor = [UIColor redColor];
            return nil;
        }
    
        if(index == 1)
        {
            self.view.backgroundColor = [UIColor blueColor];
        }
    
        if(index == 2)
        {
            self.view.backgroundColor = [UIColor greenColor];
        }
        if(index == 3)
        {
            self.view.backgroundColor = [UIColor brownColor];
        }
        /*if(index == 4)
        {
            self.view.backgroundColor = [UIColor whiteColor];
        }*/
    
        // Decrease the index by 1 to return
        index--;
    
        return [self viewControllerAtIndex:index];
    
    }
    
    - (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController {
    
        NSUInteger index = [(APPChildViewController *)viewController index];
        /*if(index == 0)
        {
            self.view.backgroundColor = [UIColor redColor];
        }*/
        if(index == 1)
        {
            self.view.backgroundColor = [UIColor blueColor];
        }
    
        if(index == 2)
        {
            self.view.backgroundColor = [UIColor greenColor];
        }
        if(index == 3)
        {
            self.view.backgroundColor = [UIColor brownColor];
        }
        if(index == 4)
        {
            self.view.backgroundColor = [UIColor whiteColor];
            return nil;
        }
    
        /*if (index == 5) {
            return nil;
        }*/
        index++;
    
        return [self viewControllerAtIndex:index];
    
    }
    

    and add this in the end of - (void)viewDidLoad {

    self.view.backgroundColor = [UIColor redColor];

提交回复
热议问题