如何在两个 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
那么,如何实现呢?
试试这个
步骤:
- 在你的视图控制器中创建一个
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];
}
我想在两个之间跳转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
那么,如何实现呢?
试试这个
步骤:
- 在你的视图控制器中创建一个
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];
}