如何在tabbar视图控制器中为第一个选项卡获取新的视图控制器而不是父视图?

时间:2015-06-05 06:10:49

标签: ios swift

我在使用标签栏控制器到我的视图控制器时遇到了问题。

这是我的问题

我有一个视图控制器,我嵌入了一个标签栏控制器,我为它添加了四个标签,并为其他三个标签创建了三个视图,这是我的确切问题。我不希望我的第一个标签栏控制器选择默认,如果我点击我的第一个标签我想显示另一个视图它不应该显示我的父视图我在父视图中显示所有标签。

请给我一些解决方案如何克服这个问题。希望我的问题清楚详细。

2 个答案:

答案 0 :(得分:0)

如果您尝试使用代码,请先了解如何在代码中创建uitabbarcontroller:How to programmatically add a UITabBarController & UINavigationController in AppDelegate?

答案 1 :(得分:0)

不知怎的,我能理解你的问题。如果没有发布代码,很难确定确切的问题。

我正在与您共享代码,假设App启动单个视图控制器为" Login View Controller"接下来是" Dashboard View Controller"。现在,您希望在用户使用四个不同的选项卡登录后显示TabBar。

请在下面打电话" setUpTabBar"在仪表板视图控制器ViewDidLoad中。

- (void)setUpTabBar
{

       UIViewController *vc1 = [[UIViewController alloc] init];
    vc1.title = @"Tab1";
    vc1.view.backgroundColor = [UIColor clearColor];
    UINavigationController *nav1 =[[UINavigationController alloc] initWithRootViewController:vc1];
    nav1 =[self setTrasparentNav:nav1];

    UIViewController *vc2 = [[UIViewController alloc] init];
    vc2.title = @"Tab2";
    vc2.view.backgroundColor = [UIColor clearColor];
    UINavigationController *nav2 =[[UINavigationController alloc] initWithRootViewController:vc2];
    nav2 =[self setTrasparentNav:nav2];


    UIViewController *vc3 = [[UIViewController alloc] init];
    vc3.title = @"Tab3";
    vc3.view.backgroundColor = [UIColor clearColor];
     UINavigationController *nav3 =[[UINavigationController alloc] initWithRootViewController:vc3];
       nav3 =[self setTrasparentNav:nav3];

    UITabBarController *tabBar = [[UITabBarController alloc] init];

    tabBar.viewControllers = @[nav1,nav2,nav3];
    tabBar.selectedIndex   = 0;
    tabBar.view.frame = self.view.bounds;


    [tabBar willMoveToParentViewController:self];
    [self.view addSubview:tabBar.view];
    [self addChildViewController:tabBar];
    [tabBar didMoveToParentViewController:self];
}

您可以使用tabBar.selectedIndex = 0;

更改默认选定的标签栏

希望这会对你有所帮助。

更新(根据问卷调查的要求): -

UIView *viewBottom=[[UIView alloc] initWithFrame:CGRectMake(0, self.view.bounds.size.height- 60.0, self.view.bounds.size.width, 60.0)];
    viewBottom.backgroundColor =[UIColor grayColor];


    UIButton *btnAdd =[UIButton buttonWithType:UIButtonTypeSystem];
    btnAdd.frame=CGRectMake(10, 10, 60.0, 40.0);

    [viewBottom addSubview:btnAdd];

    [self.view addSubview:viewBottom];