iOS开发之状态栏隐藏(问题篇)

1、基本应用app

相信基本的隐藏办法网上不少,这里只简单说明一下框架

1⃣️改变全局状态栏spa

1.在项目的Info.plist文件里设置UIViewControllerBasedStatusBarAppearance为NO。即更改成StatusBar的状态不随UIViewController的不一样而不一样code

2.[[UIApplication sharedApplication]setStatusBarHidden:YES];blog

2⃣️交由控制器管理it

1.在项目的Info.plist文件里设置UIViewControllerBasedStatusBarAppearance为YESio

2.在控制器中实现下面的方法class

- (BOOL)prefersStatusBarHidden
{
    return YES;
}

2、出现的问题sed

我当时出现的问题是上述方法的2⃣️没法隐藏我想要隐藏的那个控制器的状态栏,苦寻好久,终于在一次吃饭当时,想通可能问题出在什么地方了date

单独设置的viewController必须为最高级别的viewController,(every top-level view controller in your app (other than a standard UIKit container view controller) )中调用,这是苹果官方告诉咱们的。可是什么是最高级呢?

其实就是:咱们的控制器不能是被包含在其余的控制器中的(导航控制器的话须要是根控制器),个人项目由于框架使用了SWRevealViewController。因此若是我想在里面隐藏某个控制器的状态栏,就必须隐藏在view即将出现的时候,隐藏这个控制器的状态栏,在view即将消失的时候,再使它出现。

以后我给这个框架增长了一个BOOL属性,再调用setNeedsStatusBarAppearanceUpdate方法来强制调用隐藏状态栏的方法便可。

问题完美解决!

相关文章
相关标签/搜索