我已经尝试过
[[UIApplication sharedApplication] setStatusBarHidden:YES];
这并没有任何作用。
我已经查看了我的Info.plist
文件中的“View controller-based status bar appearance”,但它不在那里。
我该如何隐藏Xcode 6中我的应用程序顶部的白色状态栏(带有时钟和电池电量)?谢谢!
我已经尝试过
[[UIApplication sharedApplication] setStatusBarHidden:YES];
这并没有任何作用。
我已经查看了我的Info.plist
文件中的“View controller-based status bar appearance”,但它不在那里。
我该如何隐藏Xcode 6中我的应用程序顶部的白色状态栏(带有时钟和电池电量)?谢谢!
如果您没有该plist条目,每个视图控制器都需要覆盖此方法。
Objective-C
-(BOOL)prefersStatusBarHidden{
return YES;
}
Swift 2
override func prefersStatusBarHidden() -> Bool {
return true
}
Swift 3+
override var prefersStatusBarHidden: Bool {
return true
}
不要忘记设置(如果您通过调用 presentViewController:animated:completion: 方法呈现视图控制器):
Objective-C
vcToBeShownWithoutStatusbar.modalPresentationCapturesStatusBarAppearance = YES;
Swift
vcToBeShownWithoutStatusbar.modalPresentationCapturesStatusBarAppearance = true
如果您想要从某些容器视图控制器(例如UINavigationController
或带有子视图控制器的UIViewController
)更改状态栏,并且您想要更改负责状态栏的视图控制器,则应使用childViewControllerForStatusBarHidden:
属性。例如:
始终将第一个视图控制器实例设置为负责状态栏管理。
Objective-C
- (UIViewController *)childViewControllerForStatusBarHidden {
return childViewControllers.first; // or viewControllers.first
}
Swift 2
override var childViewControllerForStatusBarHidden() -> UIViewController? {
return childViewControllers.first // or viewControllers.first
}
Swift 3+
override var childViewControllerForStatusBarHidden: UIViewController? {
return childViewControllers.first // or viewControllers.first
}
设置容器视图控制器负责状态栏管理
Objective-C
- (UIViewController *)childViewControllerForStatusBarHidden {
return nil;
}
Swift 2
override func childViewControllerForStatusBarHidden() -> UIViewController? {
return nil
}
Swift 3+
override var childViewControllerForStatusBarHidden: UIViewController? {
return nil
}
Documentation: https://developer.apple.com/documentation/uikit/uiviewcontroller/1621451-childviewcontrollerforstatusbarh
setNeedsStatusBarAppearanceUpdate
,如果你需要在任意时间强制更新当前视图控制器。 - Albert Renshaw对于 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
}
完成!运行您的应用程序,不再显示状态栏!
对于使用 Swift 3 的 iOS 10,您应该使用:
override var prefersStatusBarHidden: Bool {
get {
return true
}
}
无需编写任何代码...干杯!
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
这行代码将状态栏内容的颜色更改为白色