Ios 如何在两个UIViewController之间跳转

Ios 如何在两个UIViewController之间跳转,ios,objective-c,uiviewcontroller,uiscrollview,Ios,Objective C,Uiviewcontroller,Uiscrollview,我想在两个UIViewcontrollers 通过刷卡动作 目前,我实现了一个UIScrollView,并在其上添加了UIViewController(vc1和vc2),因此 关于vc1 向左滑动:跳转到vc2 向右滑动:什么也不做 关于vc2 向左轻扫:什么也不做 向右滑动:跳转到vc1 但我想要的是: 关于vc1 向左滑动:跳转到vc2 向右滑动:跳转到vc2 关于vc2 向左滑动:跳转到vc1 向右滑动:跳转到vc1 那么,如何实现呢?试试这个 步骤: 在视图控制器中创建一个UIPageV

我想在两个
UIViewcontrollers

通过刷卡动作

目前,我实现了一个
UIScrollView
,并在其上添加了
UIViewController
(vc1和vc2),因此

关于vc1

向左滑动:跳转到vc2

向右滑动:什么也不做

关于vc2

向左轻扫:什么也不做

向右滑动:跳转到vc1

但我想要的是:

关于vc1

向左滑动:跳转到vc2

向右滑动:跳转到vc2

关于vc2

向左滑动:跳转到vc1

向右滑动:跳转到vc1

那么,如何实现呢?

试试这个

步骤:

  • 在视图控制器中创建一个
    UIPageViewController
  • self.pageController=[[UIPageViewController alloc]initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll navigationOrientation:UIPageViewControllerNavigationOrientation水平选项:nil]

  • UIPageViewController
  • NSArray*viewControllers=//在数组中添加两个视图控制器

    [self.pageController setViewControllers:viewcontrollerdirection:UIPageViewControllerNavigationDirectionForward-animated:NO-completion:nil]

  • 设置数据源并将
    UIPageViewController
    添加为子视图控制器
  • self.pageController.dataSource=self
    
    [self addChildViewController:self.pageController]

    现在,您需要实现两种方法

    - (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController {
    
        NSUInteger index = [(ViewController *)viewController index];
    
        if (index == 0) {
            return nil;
        }
    
        // Decrease the index by 1 to return
        index--;
    
        return viewControllers[index];//[self viewControllerAtIndex:index];//viewControllerAtIndex
    
    }
    
    - (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController {
    
        NSUInteger index = [(ViewController *)viewController index];
    
        if (index == 1) {
            return nil;
        }
        index++;
    
        return viewControllers[index];
    
    }
    
    试试这个

    步骤:

  • 在视图控制器中创建一个
    UIPageViewController
  • self.pageController=[[UIPageViewController alloc]initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll navigationOrientation:UIPageViewControllerNavigationOrientation水平选项:nil]

  • UIPageViewController
  • NSArray*viewControllers=//在数组中添加两个视图控制器

    [self.pageController setViewControllers:viewcontrollerdirection:UIPageViewControllerNavigationDirectionForward-animated:NO-completion:nil]

  • 设置数据源并将
    UIPageViewController
    添加为子视图控制器
  • self.pageController.dataSource=self
    
    [self addChildViewController:self.pageController]

    现在,您需要实现两种方法

    - (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController {
    
        NSUInteger index = [(ViewController *)viewController index];
    
        if (index == 0) {
            return nil;
        }
    
        // Decrease the index by 1 to return
        index--;
    
        return viewControllers[index];//[self viewControllerAtIndex:index];//viewControllerAtIndex
    
    }
    
    - (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController {
    
        NSUInteger index = [(ViewController *)viewController index];
    
        if (index == 1) {
            return nil;
        }
        index++;
    
        return viewControllers[index];
    
    }
    

    你的代码中有一些错误,但很高兴知道我应该在这里使用UIPageViewController。你的代码中有一些错误,但很高兴知道我应该在这里使用UIPageViewController。