我已经尝试了所有我能找到的解决方案,包括: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/