我试过了
[[UIApplication sharedApplication] setStatusBarHidden:YES];
这没有任何作用。
我查看了我的Info.plist
文件中的“查看基于控制器的状态栏外观”,但它不存在。
如何在Xcode 6的应用程序中隐藏屏幕顶部的白色状态栏(带有时钟和电池电量)?谢谢!
答案 0 :(得分:171)
除非您有plist条目,否则需要在每个视图控制器上覆盖此方法。
<强>目标C 强>
-(BOOL)prefersStatusBarHidden{
return YES;
}
Swift 2
override func prefersStatusBarHidden() -> Bool {
return true
}
Swift 3 +
override var prefersStatusBarHidden: Bool {
return true
}
并且不要忘记设置(如果通过调用 presentViewController:animated:completion:方法来呈现视图控制器):
<强>目标C 强>
vcToBeShownWithoutStatusbar.modalPresentationCapturesStatusBarAppearance = YES;
<强>夫特强>
vcToBeShownWithoutStatusbar.modalPresentationCapturesStatusBarAppearance = true
如果您从某个容器视图控制器更改状态栏(例如,UINavigationController
或UIViewController
带有子视图控制器),并且您想要更改负责状态栏的视图控制器,则应使用{{1属性。例如:
设置第一个视图控制器实例始终负责状态栏管理
<强>目标C 强>
childViewControllerForStatusBarHidden:
Swift 2
- (UIViewController *)childViewControllerForStatusBarHidden {
return childViewControllers.first; // or viewControllers.first
}
Swift 3 +
override var childViewControllerForStatusBarHidden() -> UIViewController? {
return childViewControllers.first // or viewControllers.first
}
设置负责状态栏管理的容器视图控制器
<强>目标C 强>
override var childViewControllerForStatusBarHidden: UIViewController? {
return childViewControllers.first // or viewControllers.first
}
Swift 2
- (UIViewController *)childViewControllerForStatusBarHidden {
return nil;
}
Swift 3 +
override func childViewControllerForStatusBarHidden() -> UIViewController? {
return nil
}
答案 1 :(得分:119)
对于Objective-C:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[application setStatusBarHidden:YES];
return YES;
}
对于Swift:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey:Any]?) -> Bool {
application.statusBarHidden = true
return true
}
完成!运行您的应用程序,不再有状态栏!
答案 2 :(得分:27)
您可以隐藏状态栏而无需编写任何代码,只需要在info.plist中输入两个条目,第一个是
&#34;查看基于控制器的状态栏外观&#34;设为NO
第二个是
&#34;状态栏最初是隐藏的&#34;设为是
答案 3 :(得分:11)
如果不存在,您可以将该行添加到Info.plist文件中。只需转到Xcode中的项目,转到“信息”部分,然后将鼠标悬停在其中一个现有行上。应出现“+”按钮,允许您添加一行并输入“查看基于控制器的状态栏外观”。
答案 4 :(得分:9)
对于使用Swift 3的iOS 10,您应该使用:
override var prefersStatusBarHidden: Bool {
get {
return true
}
}
答案 5 :(得分:2)
无需编写一行代码......干杯
答案 6 :(得分:-4)
如果您使用UIDocumentInteractionController显示数据,那么您永远不会隐藏状态栏,所以我有其他的
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
此行将状态栏内容的颜色更改为白色