如何在两个 UIViewcontroller 之间跳转

Posted

技术标签:

【中文标题】如何在两个 UIViewcontroller 之间跳转【英文标题】:How to jump between two UIViewcontrollers 【发布时间】:2015-08-01 13:32:51 【问题描述】:

我想在两个UIViewcontrollers之间跳转

通过滑动操作。

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

在 vc1 上

向左滑动:跳转到vc2

向右滑动:什么都不做

在 vc2 上

向左滑动:什么都不做

向右滑动:跳转到vc1

但我想要的是:

在 vc1 上

向左滑动:跳转到vc2

向右滑动:跳转到vc2

在 vc2 上

向左滑动:跳转到vc1

向右滑动:跳转到vc1

那么,如何实现呢?

【问题讨论】:

【参考方案1】:

试试这个

步骤:

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

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

    UIPageViewController 上添加两个视图控制器

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

[self.pageController setViewControllers:viewControllers direction: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。

以上是关于如何在两个 UIViewcontroller 之间跳转的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式在两个 UIViewController 之间切换

在两个 UIViewController 堆栈之间转换

UIScrollview 中的两个 UIviewControllers - 如何在它们之间调用方法

在两个 UIViewController 的视图之间滑动

如何创建一个 UIViewController 具有两个视图,根据单击的按钮显示一个或另一个

UITABViewController 中两个 UIViewController 之间的 KVO 机制