ios - setStatusBarHidden 已弃用,但唯一有效的方法

标签 ios objective-c ipad xcode6 ios9

我已经尝试了所有我能找到的解决方案,包括:setStatusBarHidden is deprecated in iOS 9.0但它们都不适用于我的应用程序。

这是一个简单的单 View 应用程序。有一个带有单个按钮的导航栏,状态栏应显示在其顶部。

在我的 .plist 中:

Status bar is initially hidden: NO

Status bar style: UIStatusBarStyleLightContent

View Controller based status bar appearance: NO

更改其中任何一项似乎都没有任何区别。我选中了状态栏样式“在应用程序启动期间隐藏”选项,因为我不希望它出现在初始屏幕上。

我有:

- (BOOL)prefersStatusBarHidden 
{
    return NO;
}

-(UIStatusBarStyle)preferredStatusBarStyle
{
    NSLog(@"style");
    return UIStatusBarStyleLightContent;
}

setNeedsStatusBarAppearanceUpdate 当 View 加载到我的 ViewController 中时,它们肯定都会被调用。

View 是在 .storyboard 中建立的,但许多字段也在 ViewController.m 中进行操作。在模拟指标中分配给状态栏的值似乎也没有任何影响。

我需要我的状态栏在启动屏幕期间隐藏并在 viewController 上可见。请帮我找到一个不使用已弃用的 setStatusbarHidden 的解决方案!

编辑:

我还没有解决这个问题,我肯定不是唯一遇到这个问题的人!它发生在我编写的两个应用程序中。

最佳答案

我一直在尝试解决同样的问题,我不知道为什么 setStatusBarHidden 和 setStatusBarStyle 已被弃用,因为新方法一点也不直观。

要在启动时隐藏状态栏,我的 plist 中有这些设置:

View controller-based status bar appearance: YES
Status bar is initially hidden: YES

然后在我的 View Controller 中启动后显示状态栏:

- (BOOL)prefersStatusBarHidden {    
    return NO;
}

-(UIStatusBarStyle)preferredStatusBarStyle {
    return UIStatusBarStyleLightContent;
}

在我找到这个答案之前这仍然没有用 https://stackoverflow.com/a/19365160/488611 .所以在viewDidLoad中我也设置了导航栏样式:

self.navigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent;

这完全没有意义,但有效。

关于ios - setStatusBarHidden 已弃用,但唯一有效的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32067174/

相关文章:

ios - 即使在 app 为 "Deleted"之后,有没有办法跟踪耗时?

来自 AdMob 的 iOS 应用程序错误 = com.google.DummyAdapter?

ios - 无法以编程方式从 Controller 转到 View Controller

objective-c - 为什么变量不保留在 Asset-Library block 之外?

iphone - AVAudioPlayer 帮助 : Playing multiple sounds simultaneously, 一次停止它们,并解决自动引用计数

iPhone:如何在 MapKit 上的两点之间画线?

iphone - GeneralBlock-56 在 UIWebView 中调用 loadRequest 时内存泄漏

ios - MPMoviePlayerController 和基于 Auth 的 HLS 后端服务器

ios - 如何检查lib(静态或动态)库是为iOS模拟器或Mac OSX构建的

iphone - NSMutableArray 在日志中显示正确值但在表格单元格中不显示