CHi*_*ard 12 objective-c ipad ios xcode6 ios9
我已经尝试了所有可以找到的解决方案,包括:在iOS 9.0中不推荐使用setStatusBarHidden,但它们都不适用于我的应用程序.
它是一个简单的单视图应用程序.导航栏上有一个按钮,状态栏应显示在其上.
在我的.plist中:
状态栏最初隐藏:NO
状态栏样式:UIStatusBarStyleLightContent
基于视图控制器的状态栏外观:否
改变任何这些似乎都没有任何区别.我已选中状态栏样式"在应用程序启动期间隐藏"选项,因为我不希望它出现在启动画面上.
我有:
- (BOOL)prefersStatusBarHidden
{
return NO;
}
-(UIStatusBarStyle)preferredStatusBarStyle
{
NSLog(@"style");
return UIStatusBarStyleLightContent;
}
Run Code Online (Sandbox Code Playgroud)
而setNeedsStatusBarAppearanceUpdate
这肯定是所有调用的时候,视图负载在我的ViewController.
视图在.storyboard中建立,但许多字段也在ViewController.m中进行操作.分配给模拟指标中状态栏的值似乎也没有任何影响.
我需要在启动屏幕中隐藏状态栏并在viewController上显示.请帮我找一个不使用已弃用的setStatusbarHidden的解决方案!
编辑:
我还没有解决这个问题,我肯定不会是唯一一个遇到这个问题的人!它发生在我写的两个应用程序中.
我刚刚尝试解决同样的问题,我不知道为什么setStatusBarHidden和setStatusBarStyle已被弃用,因为新方法根本不直观.
要在启动时隐藏状态栏,我在plist中有以下设置:
View controller-based status bar appearance: YES
Status bar is initially hidden: YES
Run Code Online (Sandbox Code Playgroud)
然后在启动后显示状态栏我在视图控制器中:
- (BOOL)prefersStatusBarHidden {
return NO;
}
-(UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleLightContent;
}
Run Code Online (Sandbox Code Playgroud)
直到我找到这个答案/sf/answers/1355561231/后,这仍然无效.所以在viewDidLoad中我还设置了导航栏样式:
self.navigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent;
Run Code Online (Sandbox Code Playgroud)
这绝对没有意义,但有效.
在我看来,你应该改变 的值UIViewControllerBasedStatusBarAppearance
。
设置项目a的值文件.plist为
UIViewControllerBasedStatusBarAppearance = NO
并签入文件 AppDelegate 并设置代码
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
希望我的解决方案能够解决您的问题。
归档时间: |
|
查看次数: |
7447 次 |
最近记录: |