在一个视图上隐藏iPhone上的状态栏?

Ada*_*ite 33 iphone status objective-c statusbar ios

我想在所有视图中显示我的应用中的状态栏,但只有一个.我已经尝试修改plist中的"状态栏最初隐藏",我试过:

[[UIApplication sharedApplication] setStatusBarHidden:YES];
Run Code Online (Sandbox Code Playgroud)

这隐藏了酒吧,但留下了一个丑陋的蓝色盒子,状态栏就在那里(这不是我观点的一部分,那里没有蓝色).

我还尝试在Xcode 4.2的"界面构建器"位中更改布局需要全屏和状态栏设置.

有什么建议?

编辑 - 解决方案:

我通过包括:

    -(void)viewWillDisappear:(BOOL)animated{


    [[UIApplication sharedApplication] setStatusBarHidden:YES];

}


-(void)viewDidAppear:(BOOL)animated{


    [[UIApplication sharedApplication] setStatusBarHidden:NO];

}
Run Code Online (Sandbox Code Playgroud)

在我想要状态栏的每一页上.

它仍然看起来不稳定和垃圾,因为标签栏出现并在每次切换视图时重新出现.但是我已经受够了,现在大约5个小时就解决了这个愚蠢的问题,所以这将是必须的.

第二次编辑 -

通过在viewWillAppears中包含setStatusBarHidden = NO来修复波动性.上帝知道一切如何运作但事实确实如此.

Kar*_*tik 42

尝试这一个它将完美运行..

[[UIApplication sharedApplication] setStatusBarHidden:YES];
Run Code Online (Sandbox Code Playgroud)

并且在XIB中为状态栏设置了无选项.

对于iOS 7.

转到info.plist并添加两个属性(如果不存在).将"状态栏最初隐藏"设置为"是"并将"UIViewControllerBasedStatusBarAppearance"设置为"NO".这将隐藏您的应用的状态栏.


neo*_*eye 16

#pragma mark - Hide statusbar

-(void)hideStatusBar {
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 70000
    // iOS 7.0 or later
    [self setNeedsStatusBarAppearanceUpdate];
#else
    // less than 7
    [[UIApplication sharedApplication] setStatusBarHidden:YES];
#endif
}

- (BOOL)prefersStatusBarHidden {
    return YES;
}
Run Code Online (Sandbox Code Playgroud)


Ada*_*ite 8

如果有人在寻找上述解决方案不起作用的解决方案(并且顶部仍然存在恼人的蓝色20px间隙),请尝试将此放在视图控制器的实现文件的viewWillAppear中,您希望状态酒吧被隐藏.

self.navigationController.navigationBar.frame = CGRectOffset(self.navigationController.navigationBar.frame, 0.0, -20.0);
Run Code Online (Sandbox Code Playgroud)

这真的花了我12个小时来修复,这就是解决方案,所以现在我正在传播这个词以防万一其他人有这个恼人的问题.


小智 7

Kartik的解决方案对我有用.

[[UIApplication sharedApplication] setStatusBarHidden:YES];

我将此添加到viewWillAppear:实例方法.

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    [[UIApplication sharedApplication] setStatusBarHidden:YES];
    self.webView.scalesPageToFit = YES;
    [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.co.uk"]]];
}
Run Code Online (Sandbox Code Playgroud)

我也花了很多年的时间.使用Xcode 4.2,iOS5 sim.

但是当我第一次实现它时,顶部的烦人"空间"就在那里.我在故事板中选择了视图控制器,并按如下方式设置属性:大小:全屏状态栏:没有其他所有推断.

我检查想要全屏.

瞧,这一切都很好.