隐藏标签栏和导航栏

时间:2014-05-25 20:53:04

标签: ios uinavigationcontroller uitabbarcontroller

这是我的设置: 应用程序启动时,主屏幕有4个按钮。每个按钮都会带您进入新视图/子视图。每个子视图都有一个后退按钮(通过导航控制器),可以带您返回主/菜单屏幕。很容易。而且效果很好。但是,这是我想要做的: 主屏幕有4个按钮,4个不同的视图。在主屏幕上,您看到的是主页面/菜单,NO TABBAR。但是,当您转到4个视图选项中的任何一个时,将出现一个标签栏,其中填充了4个子视图的选项卡。如果我们想返回主菜单,还会有一个导航栏。

基本上:主菜单显示NO TAB BAR。 4个子视图显示Tab栏和导航栏。我搞砸了很多东西,却无法让它发挥作用。有关如何做到这一点的任何想法?

2 个答案:

答案 0 :(得分:0)

要在viewWillAppear上显示navigationBar,请执行此

[self.navigationController setNavigationBarHidden:NO];

要在viewWillAppear上显示tabBar,请执行此

self.tabBarController.tabBar.hidden = NO;

您可以将它们设置为YES,使其隐藏在viewWillAppear

上的菜单中

希望有所帮助

答案 1 :(得分:0)

您可以通过让故事板看起来像这样来实现这一目标:

Storyboard Image

然后在YourMainMenuViewController的实施中:

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];

    [self.navigationController setNavigationBarHidden:YES animated:animated];
}

- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];

    [self.navigationController setNavigationBarHidden:NO animated:animated];
}

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    UITabBarController *tabVC = segue.destinationViewController;

    if ([segue.identifier isEqualToString:@"Tab1"]) {
        tabVC.selectedIndex = 0;
    }
    else if ([segue.identifier isEqualToString:@"Tab2"]) {
        tabVC.selectedIndex = 1;
    }
    else if ([segue.identifier isEqualToString:@"Tab3"]) {
        tabVC.selectedIndex = 2;
    }
    else if ([segue.identifier isEqualToString:@"Tab4"]) {
        tabVC.selectedIndex = 3;
    }
}

虽然我建议不要在这样的导航控制器中放置一个标签栏控制器,因为它会让人感到困惑。