在iOS8上,以横向模式显示我的应用程序将隐藏状态栏,但在iOS 7上,状态栏将显示在两个方向上
我想要在iOS 8中以两种方向显示状态栏; 它在iOS 7中正常显示。
 navigationController.isNavigationBarHidden返回NO。 
为什么iOS 8这样做?
尝试这个
 在didRotateFromInterfaceOrientation添加以下代码 
 [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone]; 
  编辑 
  无需在所有视图控制器中写入代码 
 在plist中将View controller-based status bar appearance为NO ,并在根视图控制器的viewDidLoad添加以下代码 
 [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone]; [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone]; 
  演示项目 
  https://www.dropbox.com/s/uumneidk4wom5md/demoStatusBar.zip?dl=0 
要在ios 8中以横向模式显示状态栏,请尝试以下方法
 - (BOOL)prefersStatusBarHidden { return NO; } 
Swift版本
 override func prefersStatusBarHidden() -> Bool { return false } 
Swift 3,Xcode 8,iOS 10,/ * ViewController.swift * /
 override var prefersStatusBarHidden: Bool { return false } 
  Jageen的解决scheme可能是最好的,只是一个小的改变,即不使用viewDidLoad ,最好使用application:didFinishLaunchingWithOptions: 
基本上是两个步骤:
1)。 在项目的Info.plist文件中将“基于视图控制器的状态栏外观”设置为NO。
  2)。 强制状态栏隐藏状态为NO,在application:didFinishLaunchingWithOptions: ,使用以下代码: 
 [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone]; [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone]; 
而且,瞧!
  注意:使用上面的setStatusBarHidden:withAnimation语句来强制状态栏隐藏状态是很重要的。 
我遇到过同样的问题! 通过将其添加到viewDidLoad来修复
  [self setNeedsStatusBarAppearanceUpdate]; 
而这本身就是执行
 -(BOOL)prefersStatusBarHidden{ return NO; } 
他们通过给我们更多的工作让我们有工作。
要么…
他们做了其他改变,导致比特占用比以前更多的空间。 随着iOS 7和“顶部布局栏指南”的出现,在向下轻扫屏幕中状态栏的方便可用性,回收状态栏空间以供其他小提示,许多人预测状态栏可能是逐渐成为UI的标准部分。
关于新的设备尺寸,也有相当多的嗡嗡声,因为它们在iOS 8中所做的更改试图使它更容易编码一堆不同的尺寸。
这是纯粹的猜测,但我不认为他们的景观状态栏会在iOS 8中返回。
这不是问题,而是iOS 8的一个function。在iOS 8中,状态栏将隐藏在横向模式下,即使苹果的应用程序也具有相同的行为。
Swift 3
 override func viewDidLoad() { super.viewDidLoad() UIApplication.shared.setStatusBarHidden(true, with: .none) UIApplication.shared.setStatusBarHidden(false, with: .none) /// } 
 并在Info.plist里面添加这个: 
  UIViewControllerBasedStatusBarAppearance布尔值NO 
Swift 3 (截至2017年6月2日)
 override func viewWillAppear(_ animated: Bool) { super.viewWillAppear() self.setNeedsStatusBarAppearanceUpdate() } override var prefersStatusBarHidden : Bool { return false } 
我们按照上面的步骤修复它,并确保左右两个横向都启用。
在项目/目标/部署信息下

我们通过强制用户看不见的方向改变来解决这个问题。 在加载的第一个视图控制器中,添加:
 - (void)viewWillAppear:(BOOL)animated { NSNumber *orientationLeft = [NSNumber numberWithInt:UIInterfaceOrientationLandscapeLeft]; NSNumber *orientationRight = [NSNumber numberWithInt:UIInterfaceOrientationLandscapeRight]; [[UIDevice currentDevice] setValue:orientationLeft forKey:@"orientation"]; [[UIDevice currentDevice] setValue:orientationRight forKey:@"orientation"]; }