iOS9如何隱藏各類bar

轉載自:http://www.cnblogs.com/aBigRoybot/articles/2234487.html

狀態條StatusBar

1     [UIApplication sharedApplication].statusBarHidden = YES;

導航條NavigationBar

1     [self.navigationController setNavigationBarHidden:YES];

TabBar

方法1

1     [self.tabBarController.tabBar setHidden:YES];

這個方法有問題,雖然tabBar被隱藏了,可是那片區域變成了一片空白,沒法被其餘視圖使用。html

方法2

對於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 }
複製代碼

方法3

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 }
相關文章
相關標籤/搜索