我正在开发一个iOS应用程序,在那个应用程序中,我正在使用标签栏控制器。 从标签栏控制器中导航到另一个视图控制器。 在推送视图控制器之前,我正在设置该控制器的属性
viewController.hidesBottomBarWhenPushed = YES;
我正在导航到另一个视图控制器,底部有标签栏。
问题是当我将视图控制器弹回到视图控制器时,标签栏也出现在该视图中。 弹出视图控制器时有没有办法隐藏标签栏?
如果有人能帮我解决这个问题会很棒。
提前致谢。
答案 0 :(得分:3)
在这种情况下,viewWillAppear方法将非常有用。在你的firstviewcontroller中输入此代码
-(void)viewWillAppear:(BOOL)animated
{
self.tabBarController.tabBar.hidden = YES;
}
因此,当secondviewcontroller加速时,它将调用此方法,并且您的底栏将被隐藏。
答案 1 :(得分:0)
点击后退按钮时将其放置
[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
和{{ 1}} 根据您的要求
NO
答案 2 :(得分:0)
取决于您的应用程序的设计,您可以将中心对象设置为导航控制器的委托。并隐藏/显示标签栏。这个问题hidesBottomBarWhenPushed but when popped也提供了一个我不喜欢的解决方案。顺便说一句,当用户浏览到第二级或更深级别时,再次显示底栏是不常见的。
答案 3 :(得分:0)
您可以在标签栏控制器上显示第二个视图控制器。如果您希望第二个视图控制器具有导航栏,则可以将其放在新的导航控制器中。
如果这种方法无法解决您的问题,您可以构建一个自定义标签栏控制器,以便它可以在导航控制器内。您可以将第二个视图控制器推送到该导航控制器。要创建自定义标签栏控制器,您可以参考Apple Documentation on Creating Custom Container View Controllers。我认为它在iOS 5及更高版本上运行良好。