1 [UIApplication sharedApplication].statusBarHidden = YES;
1 [self.navigationController setNavigationBarHidden:YES];
1 [self.tabBarController.tabBar setHidden:YES];
這個方法有問題,雖然tabBar被隱藏了,可是那片區域變成了一片空白,沒法被其餘視圖使用。html
對於navigationController+tabBarController的結構,能夠在push下一級的childController以前將childController的hidesBottomBarWhenPushed屬性設爲YES。app
好比,能夠在childController的初始化方法中作這件事,代碼以下:ide
1 // The designated initializer. Override if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad.
2
3 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
4 self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
5 if (self) {
6 // Custom initialization.
7 self.hidesBottomBarWhenPushed = YES;
8 }
9 return self;
10 }
http://www.azumi.cc/thread-539502-1-1.htmlspa
1 - (void)makeTabBarHidden:(BOOL)hide
2 {
3 if ( [self.tabBarController.view.subviews count] < 2 )
4 {
5 return;
6 }
7 UIView *contentView;
8
9 if ( [[self.tabBarController.view.subviews objectAtIndex:0] isKindOfClass:[UITabBar class]] )
10 {
11 contentView = [self.tabBarController.view.subviews objectAtIndex:1];
12 }
13 else
14 {
15 contentView = [self.tabBarController.view.subviews objectAtIndex:0];
16 }
17 // [UIView beginAnimations:@"TabbarHide" context:nil];
18 if ( hide )
19 {
20 contentView.frame = self.tabBarController.view.bounds;
21 }
22 else
23 {
24 contentView.frame = CGRectMake(self.tabBarController.view.bounds.origin.x,
25 self.tabBarController.view.bounds.origin.y,
26 self.tabBarController.view.bounds.size.width,
27 self.tabBarController.view.bounds.size.height - self.tabBarController.tabBar.frame.size.height);
28 }
29
30 self.tabBarController.tabBar.hidden = hide;
31 // [UIView commitAnimations];
32 }
1 - (void)viewWillAppear:(BOOL)animated { 2 [self setFullScreen:YES]; 3 } 4 5 - (void)viewWillDisappear:(BOOL)animated { 6 [self setFullScreen:NO]; 7 } 8 9 - (void)setFullScreen:(BOOL)fullScreen {10 // 狀態條11 [UIApplication sharedApplication].statusBarHidden = fullScreen;12 // 導航條13 [self.navigationController setNavigationBarHidden:fullScreen];14 // tabBar的隱藏經過在初始化方法中設置hidesBottomBarWhenPushed屬性來實現。15 }