【发布时间】:2014-01-28 21:09:01
【问题描述】:
我的 iPhone 应用程序要求始终隐藏状态栏。这通常很容易做到,如果我只在 iPhone 上运行该应用程序,它就可以工作。但是,如果我在 iPad 上运行该应用程序,状态栏仍会出现在内容的顶部。那么,无论我的仅限 iPhone 的应用程序在什么设备上运行,我如何确保隐藏状态栏?我目前在我的代码中执行以下操作:
为每个视图控制器调用这个方法(我实际上在 UIViewController 上创建了一个类别,它为任何 VC 自动实现这个,但它基本上与在每个 vc 文件中编写它是一样的):
-(BOOL)prefersStatusBarHidden{
return YES;
}
我还在 Info.plist 中将“状态栏最初隐藏”设置为“是”,“查看基于控制器的状态栏外观”设置为“否”。我也试过检测正在使用的设备并调用
[UIApplication sharedApplication]setSetStatusBarHidden:YES]
在 AppDelegate 中,但也没有运气。所以,我相信我已经尝试了几乎所有人们想尝试的东西。
【问题讨论】:
-
我基本上什么都试了。在视图控制器中编写 prefersStatusBarHidden,在 Info.plist 中将“状态栏最初隐藏”设置为 YES,将“基于视图控制器的状态栏外观”设置为 NO。我还尝试检测正在使用哪个设备并调用 [UIApplication sharedApplication]setSetStatusBarHidden:YES],但也没有运气。在 iPhone 上运行时,仅在我的视图控制器上单独使用 prefersStatusBarHidden 即可
-
如果我把它做成一个通用应用程序,那么我的代码就可以工作并且状态栏会隐藏在 iPad 上。但是,这个应用程序并不是通用的,所以这不是一个可行的解决方案
-
如果你设置了prefersStatusBarHidden,“基于视图控制器的状态栏外观”应该设置为YES,你可能已经知道了,但你的措辞有点奇怪。
-
抱歉,我的意思是说我已经尝试将该键设置为 YES 和 NO,但都没有帮助。
-
检查你的代码你在哪里弄错了
标签: ios iphone ipad statusbar uistatusbar