我想在我的应用程序中在所有视图中显示状态栏,但有一个视图除外。我尝试修改plist中的“状态栏最初隐藏”,也尝试过:
[[UIApplication sharedApplication] setStatusBarHidden:YES];
这将隐藏状态栏,但会留下一个丑陋的蓝色框,位于状态栏原来的位置上(这不是我的视图的一部分,上面没有蓝色内容)。
我还尝试在Xcode 4.2的“Interface Builder”中更改布局并设置全屏和状态栏设置。
有什么建议吗?
编辑 - 解决方案:
我已经通过包含以下内容解决了问题:
-(void)viewWillDisappear:(BOOL)animated{
[[UIApplication sharedApplication] setStatusBarHidden:YES];
}
-(void)viewDidAppear:(BOOL)animated{
[[UIApplication sharedApplication] setStatusBarHidden:NO];
}
在我想要状态栏显示的每一页上。
由于选项卡栏每次切换视图时都会出现和消失,所以它看起来仍然很糟糕。但是我已经受够了,花了约5个小时解决这个愚蠢的问题,所以只能这样了。
第二次编辑 -
通过在viewWillAppear中包含setStatusBarHidden=NO解决了不连贯的问题。天知道一切是如何运作的,但它确实可以工作。
viewDidLoad
中执行一些布局操作,那么该布局将假定状态栏已显示。因此最好在viewDidLoad
中的第一件事就是隐藏它。 - Yevhen Dubinin