在使用Xcode 6.x构建的应用程序中,iPhone横屏模式下状态栏会自动隐藏。而在使用Xcode 5.x编译的相同应用程序则不会这样做。
我该如何防止应用程序在横屏模式下隐藏状态栏?基本上,我该如何禁用苹果/Xcode强制推行的这个“超级棒”的功能呢?
p.s. 我已经尝试使用以下代码更新视图控制器,但没有帮助。
- (BOOL)prefersStatusBarHidden {
return NO;
}
最佳解决方案
这基本上是一个两步流程:
1)。在您的项目Info.plist文件中将“View controller-based status bar appearance”设置为 NO
。
2)。在 application: didFinishLaunchingWithOptions:
方法中使用以下代码强制隐藏状态栏:NO
。
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];
完成了,大功告成!
注意:重要的是使用上述两个setStatusBarHidden:withAnimation:
声明,强制隐藏状态栏。
#define IS_IOS8 SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"8.0")
-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration{
[super willAnimateRotationToInterfaceOrientation:toInterfaceOrientation duration:duration];
if (IS_IOS8){
[[UIApplication sharedApplication] setStatusBarHidden:NO];
}
}
在 Info.plist 中将 "View controller-based status bar appearance" 设置为 YES
然后将以下代码放置在所需的视图控制器中:
- (BOOL)prefersStatusBarHidden {
return NO;
}