UITabController中的每个选项卡都有许多视图控制器

时间:2016-03-25 05:00:20

标签: ios user-interface uitabbarcontroller uipageviewcontroller

我想用这样设计一个带有UI的应用: enter image description here

在底部,我知道它是UITabbarController。在每个选项卡中,它有许多视图控制器,如BEAT,TOP,FUN ......每个选项卡都有不同的视图控制器。 滚动水平时,可以从BEAT变为TOP到FUN ...... 我该如何设计呢?我应该使用什么视图控制器?它看起来像UITabController中的UIPageController,但是使用UIPageController,我不知道如何用BEAT,TOP,FUN ......替换底部的点(。)。

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

替代解决方案是在视图上添加UISwipeGesture(左/右),在滑动操作时,您可以推送或弹出视图控制器。

在ViewController.h中

@property (retain, nonatomic) UISwipeGestureRecognizer * leftSwipe;
@property (retain, nonatomic) UISwipeGestureRecognizer * rightSwipe;

在ViewController.m中

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self setupSwipeGestures];
}

-(void)setupSwipeGestures
{
    _leftSwipe=[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(next)];
    [_leftSwipe setDirection:UISwipeGestureRecognizerDirectionLeft];

    _rightSwipe =[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(previous)];
    [_rightSwipe setDirection:UISwipeGestureRecognizerDirectionRight];

    [self.view addGestureRecognizer:_leftSwipe];
    [self.view addGestureRecognizer:_rightSwipe];    
}

- (void) previous
{
    // perform pop to get previous viewController
    // i.e [self.navigationController popViewControllerAnimated:YES];

}

- (void) next
{
    // perform push to get next viewController
    // i.e     [self.navigationController pushViewController:viewController animated:YES];
}

如果你想在每个Controller中使用上面的代码,那么你可以定义自己的viewController并粘贴上面的代码,之后继承你需要上述功能的所有viewControllers。

答案 1 :(得分:1)

您可以在标签控制器的每个标签中使用XLPagerTabStrip库。令人敬畏的库,甚至为您提供类似于Android的滑动功能,可以让您滑动单个页面部分以及保持标签属性。