现在很多展示类的app都使用了tabBar, 但是 有时候,为了效果或者其他, 我们需要将tabBar去掉,那么,我们要怎么做呢?
方法一: 非常非常非常简单的一句话:
<> 一下是push方法, 我感觉写详细一点是我的责任,请不要喷我啰嗦 <>
//创建你要push的对象 second; 并且,这个页面就是你要将tabBar隐藏的地方
SecondViewController *second = [ [SecondViewController alloc] init];
<*>>*<<*>>*<<*> 隐藏tabBar的方法 隐藏tanBar的方法 隐藏tanBar的方法 <*>>*<<*>>*<<*>
[second setHidesBottomBarWenPushed:YES];
//或者
self.hidesBottomBarWhenPushed = YES;
//push
[self.navigationController pushViewController:second animated:YES];
这句话要在 push navigation之前执行,非常的方便,简介!
方法二:
//执行动画设置
[UIView beginAnimations:nil context:NULL];
//设置执行的持续时间 就是你push的时候 覆盖的那个动画过程的时间
[UIView setAnimationDuration:6];
//遍历此控制器的tabBarController中的子视图
for (UIView *view in self.tabBarController.view.subviews) {
//判断遍历出来的view 是否是UITabBar的类
if ([view isKindOfClass:[UITabBar class]]) {
//[UIScreen mainScreen].bounds.size.height-49 是下面tabBar的高度 如果减去49 就不会显示下面的view 如果不减去就会显示
if (view.hidden) {
[view setFrame:CGRectMake(view.frame.origin.x,[UIScreen mainScreen].bounds.size.height, view.frame.size.width, view.frame.size.height)];
}else{
[view setFrame:CGRectMake(view.frame.origin.x, [UIScreen mainScreen].bounds.size.height, self.view.frame.size.width, self.view.frame.size.height)];
}
}else{
if (view.hidden) {
[view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, [UIScreen mainScreen].bounds.size.height)];
}else{
[view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, [UIScreen mainScreen].bounds.size.height)];
}
}
}
//这是view执行的动画, 添加这句话,如果你的持续时间写的长的话你会发现 下面的tabBar 是慢慢的往下消失的, 如果不写这句话,你会发现,第二界面覆盖的时候,下面的tabBar和第二界面是同时慢慢的覆盖和消失的
[UIView commitAnimations];
正在push的状态