我试过了
[[UIApplication sharedApplication] setStatusBarHidden:YES];
这没有任何作用。
我在 Info.plist
文件中查看了“查看基于 Controller 的状态栏外观”,但它不存在。
如何在 Xcode 6 的应用中隐藏屏幕顶部的白色状态栏(带有时钟和电池电量)?谢谢!
最佳答案
您需要在每个 View Controller 上覆盖此方法,除非您有该 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: 方法呈现 View Controller ):
Objective-C
vcToBeShownWithoutStatusbar.modalPresentationCapturesStatusBarAppearance = YES;
swift
vcToBeShownWithoutStatusbar.modalPresentationCapturesStatusBarAppearance = true
如果您从某个容器 View Controller (例如 UINavigationController
或 UIViewController
与 subview Controller )更改状态栏,并且您想更改负责状态栏的 View Controller 你应该使用 childViewControllerForStatusBarHidden:
属性。例如:
设置第一个 View Controller 实例始终负责状态栏管理
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
}
设置容器 View Controller 负责状态栏管理
Objective-C
- (UIViewController *)childViewControllerForStatusBarHidden {
return nil;
}
swift 2
override func childViewControllerForStatusBarHidden() -> UIViewController? {
return nil
}
Swift 3+
override var childViewControllerForStatusBarHidden: UIViewController? {
return nil
}
关于objective-c - 在 iOS 8 应用程序中隐藏状态栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26146012/