2013-06-22 43 views
11

是否可以在状态栏的一个场景中隐藏状态栏?在故事板中的单个ViewController上隐藏状态栏

例如:

我希望它隐藏在 “的ViewController A”,而是经由segue到 “的ViewController B”(例如,Navigation Controller)状态栏会显示移动时。

我收集你可以在整个应用程序禁用它,但你怎么做只有一个ViewController


从下面的建议确实可行,但是切换到Navigation Controller当它似乎导致在错误的位置要绘制的导航栏。

nav bar bug

回答

29

如何

- (void)viewWillAppear:(BOOL)animated{ 
    [super viewWillAppear:animated]; 
    [[UIApplication sharedApplication] setStatusBarHidden:YES]; 

} 


- (void)viewWillDisappear:(BOOL)animated{ 
    [[UIApplication sharedApplication] setStatusBarHidden:NO]; 
    [super viewWillDisappear:animated]; 
} 
+0

这似乎使导航栏进入[车](http://i.imgur.com/ ZvroaJH.png) – BytesGuy

+0

它在哪里去越野车?当你从没有状态栏的那个切换到那个? –

+1

如果你想要一些流畅的动画,请使用'setStatusBarHidden:withAnimation:'。 –

0

我的解决办法:在故事板,选择场景,并设置状态栏:无在属性检查器。

+1

这只是隐藏它的故事板,但显示当我运行应用程序。 – zaheer

+0

@zaheer你使用的是哪个版本的iOS? – itslittlejohn

+0

Xcode版本是5.0,iOS 7.0 – zaheer

17

只要把代码放在你的ViewController.m(在iOS7,Xcode中5)

- (BOOL) prefersStatusBarHidden { return YES; }