这是我的设置: 应用程序启动时,主屏幕有4个按钮。每个按钮都会带您进入新视图/子视图。每个子视图都有一个后退按钮(通过导航控制器),可以带您返回主/菜单屏幕。很容易。而且效果很好。但是,这是我想要做的: 主屏幕有4个按钮,4个不同的视图。在主屏幕上,您看到的是主页面/菜单,NO TABBAR。但是,当您转到4个视图选项中的任何一个时,将出现一个标签栏,其中填充了4个子视图的选项卡。如果我们想返回主菜单,还会有一个导航栏。
基本上:主菜单显示NO TAB BAR。 4个子视图显示Tab栏和导航栏。我搞砸了很多东西,却无法让它发挥作用。有关如何做到这一点的任何想法?
答案 0 :(得分:0)
要在viewWillAppear上显示navigationBar,请执行此
[self.navigationController setNavigationBarHidden:NO];
要在viewWillAppear上显示tabBar,请执行此
self.tabBarController.tabBar.hidden = NO;
您可以将它们设置为YES,使其隐藏在viewWillAppear
上的菜单中希望有所帮助
答案 1 :(得分:0)
您可以通过让故事板看起来像这样来实现这一目标:
然后在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;
}
}
虽然我建议不要在这样的导航控制器中放置一个标签栏控制器,因为它会让人感到困惑。