弹出视图控制器后出现的标签栏
我开发一个ios应用程序,并在该应用程序即时通讯使用TabBar控制器。 并从标签栏控制器内导航到另一个视图控制器。 之前推视图控制器IM设置该控制器弹出视图控制器后出现的标签栏
viewController.hidesBottomBarWhenPushed = YES;
和IM导航到具有在底部的标签栏的另一个视图控制器的特性。
问题是,当我弹出视图控制器回到视图控制器的标签栏也出现在该视图。 当弹出视图控制器时,有没有办法隐藏标签栏?
如果有人能够帮助我解决这个问题,那该多好。
在此先感谢。
在这种情况下,viewWillAppear方法将使用满。在firstviewcontroller把这个代码
-(void)viewWillAppear:(BOOL)animated
{
self.tabBarController.tabBar.hidden = YES;
}
所以当secondviewcontroller POP操作出那么它会调用这个方法,你的底栏将被隐藏。
将这个当你点击后退按钮
[self.tabBarController.tabBar setHidden:YES];
[UIView animateWithDuration:0.5
animations:^{
self.tabBarController.tabBar.frame = CGRectMake(self.tabBarController.tabBar.frame.origin.x, self.tabBarController.tabBar.frame.origin.y+self.tabBarController.tabBar.frame.size.height, self.tabBarController.tabBar.frame.size.width, self.tabBarController.tabBar.frame.size.height);
}
我有另一个答案...
将在所有的ViewController这两种方法和管理BOOL
变量是self.hidesBottomBarWhenPushed
到YES
和NO
按您的要求
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
self.hidesBottomBarWhenPushed = YES;
}
- (void)viewDidDisappear:(BOOL)animated
{
self.hidesBottomBarWhenPushed = NO;
}
我也试过。事情是你可以隐藏标签栏,它留下一个空的空间在底部。当我试图将视图框架设置为全屏时,它无效。 – era 2013-04-05 09:36:08
正如你所说,首先firstview有底部栏,然后推它会隐藏吗?并从推viewController弹出时,然后它应该隐藏......这是你的要求或米丢失任何 – 2013-04-05 09:42:47
firstview(有底部栏) - > secondview(隐藏底部栏) - > thirdview(有底部栏) 然后即时弹出第三个视图和导航回到第二个视图底部栏是在那里..我需要摆脱它。如果我按照你的建议在底部留下了一个空白空间。 – era 2013-04-05 09:59:27
取决于你的应用程序的设计,你可以设置一个中心对象作为导航控制器的委托。并隐藏/显示标签栏。这个问题hidesBottomBarWhenPushed but when popped也提供了一个解决方案,但我不喜欢。顺便说一下,当用户浏览到第二个或更深层次时,再次显示底部栏并不常见。
您可以在标签栏控制器上显示第二个视图控制器。如果你想要第二个视图控制器有一个导航栏,你可以把它放在一个新的导航控制器。
如果这样不能解决您的问题,您可以构建自定义选项卡栏控制器,以便它可以位于导航控制器中。您可以将第二个视图控制器推送到该导航控制器。要创建自定义标签栏控制器,您可以参考Apple Documentation on Creating Custom Container View Controllers。我认为它适用于iOS 5及更高版本。
显示代码你是如何放置tabbar的? – 2013-04-05 09:48:40