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

我想在两个UIViewcontrollers之间跳转

通过滑动操作。

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

在 vc1 上

向左滑动:跳转到vc2

向右滑动:什么都不做

在 vc2 上

向左滑动:什么都不做

向右滑动:跳转到vc1

但我想要的是:

在 vc1 上

向左滑动:跳转到vc2

向右滑动:跳转到vc2

在 vc2 上

向左滑动:跳转到vc1

向右滑动:跳转到vc1

那么,如何实现呢?

【问题讨论】:

    标签: ios objective-c uiviewcontroller uiscrollview


    【解决方案1】:

    试试这个

    步骤:

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

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

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

    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];
    
    }
    

    【讨论】:

    • 您的代码中有一些错误,但很高兴知道我应该在这里使用 UIPageViewController。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-14
    • 1970-01-01
    • 2013-02-02
    相关资源
    最近更新 更多