如何在两个 UIViewcontroller 之间跳转

How to jump between two UIViewcontrollers

我想在两个之间跳转UIViewcontrollers

通过滑动操作。

目前,我实现了一个UIScrollView,并在其上添加了UIViewcontrollers(vc1 and vc2),所以

在 vc1 上

swipe left : jump to vc2

swipe right : do nothing

在 vc2 上

swipe left : do nothing

swipe right : jump to vc1

但我想要的是:

在 vc1 上

swipe left : jump to vc2

swipe right : jump to vc2

在 vc2 上

swipe left : jump to vc1

swipe right : jump to vc1

那么,如何实现呢?

试试这个

步骤:

  1. 在你的视图控制器中创建一个UIPageViewController

self.pageController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:nil];

  1. UIPageViewController
  2. 上添加您的两个视图控制器

NSArray *viewControllers = //add your two view controllers in array;

[self.pageController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil];

  1. 设置数据源并添加 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];

}