objective-c - 在 iOS 8 应用程序中隐藏状态栏

标签 objective-c ios8 statusbar

我试过了

[[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

文档:https://developer.apple.com/reference/uikit/uiviewcontroller/1621453-modalpresentationcapturesstatusb

如果您从某个容器 View Controller (例如 UINavigationControllerUIViewController 与 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
}

文档: https://developer.apple.com/documentation/uikit/uiviewcontroller/1621451-childviewcontrollerforstatusbarh

关于objective-c - 在 iOS 8 应用程序中隐藏状态栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26146012/

相关文章:

iphone - NSNumberFormatter-Decimal Style-value 当我们再次进入那个文本字段时发生变化,有或没有编辑

iphone - Objective-C - 连接由管道分隔的字符串

ios - 用于 AdHoc 分发的 Xcode 6 存档

ios - PHAsset 获取原始文件名

haskell - xmonad 的 logHook 可以按设定的时间间隔运行,而不是(仅仅)响应布局事件吗?

java - 安卓图标电池

ios - UIImageView+AF联网及保存图片

objective-c - 在保持宽高比的情况下将 CGSize 调整到最大

ios - 在后台运行时访问 iOS 中的加速度计

objective-c - 单击状态项应该开始操作,但没有