iOS 控制Status Bar的隐藏和显示

原创 2017年01月03日 11:25:41
1.在info.plist设置中,View controller-based status bar appearance的值要设置成YES,经测试当是NO的时候,接下来要做的事不会被执行。

2.在ViewController.m中添加(ViewController.m是创建项目时自动生成的rootViewController)
//控制状态栏显隐

- (UIViewController*)childViewControllerForStatusBarHidden{

    return  [[UIViewController alloc] init];

}


//控制状态栏样式

- (UIViewController*)childViewControllerForStatusBarStyle{

    return  [[UIViewController alloc] init];

}

由child controller 来控制状态栏的显隐和样式。
如果希望状态栏的样式是UIStatusBarStyleLightContent且在全局设置中已经设置好了,由于第1步的设置会导致全局设置无效,所以还要加上对样式的控制。

3.在yourChildViewContoller1.m中添加

//是否隐藏状态栏

- (BOOL)prefersStatusBarHidden{

    if () {

        return YES;//隐藏

    }

    return NO;//显示

}

yourChildViewContoller2.m中添加

- (UIStatusBarStyle)preferredStatusBarStyle{

    return UIStatusBarStyleLightContent;

}

yourChildViewContoller1yourChildViewContoller2可以是同一个,也可以是不同的



4.

在第3步中添加的方法会在app载入后立即执行,在后面的操作过程中是不会被执行的

当希望状态栏改变状态的时候,需要执行这个方法[self setNeedsStatusBarAppearanceUpdate];

如果在yourChildViewContoller1、yourChildViewContoller2中执行这个方法,是无效的.

状态栏只能由ViewController来控制,第2步中的设置相当于加了个代理,由代理来决定结果,但是要代理来执行还得由ViewController来发出命令,所以setNeedsStatusBarAppearanceUpdate方法得是ViewController来调用。

改成[[[[UIApplication sharedApplication] keyWindow] rootViewController] setNeedsStatusBarAppearanceUpdate];在代理的child controller中执行就OK了。

版权声明:本文为博主原创文章,未经博主允许可以转载,转载时请附上原地址。

相关文章推荐

iOS 隐藏status bar(状态栏/电池条)的详细研究

今天隐藏做项目,横屏时隐藏电池条发现隐藏失败,查了半天资料,总结如下: 若info.plist文件中,View controller-based status...

IOS status bar 配置方法

ios上状态栏 就是指的最上面的20像素高的部分,显示了电池、时间、运营商等信息。 可以选择status bar 之上元素的颜色(黑、白) , 默认的黑色(UIStatusBa...

iOS7下status bar相关问题的解决方法

转载自:http://blog.csdn.net/volcan1987/article/details/14227313 iOS7里status bar的实现跟iOS6下有写不一样,...

iOS隐藏status bar原理

info.plist文件中,View controller-based status bar appearance项设为YES,则View controller对status bar的设置优先级高于a...

iOS7下隐藏status bar

info.plist文件中,View controller-based status bar appearance项设为YES,则View controller对status bar的设置优先级高于a...

iOS7隐藏状态栏 status Bar

IOS7中,不仅应用的风格有一定的变化,状态栏变化比较大,我们可以看到UIVIEWCONTROLLER的状态栏与导航栏基本是一体的。因此UIVIEWCONTROLLER的HIDE/SHOW状态的方法也...

xcode5 ios7 status bar 各种隐藏问题

各种关于ios7 下隐藏status bar的问题。汇集一下: 用xcode5开发新的iOS游戏,虽然我已经在info.plist里面把Status bar is initially...

android 显示/隐藏状态栏(Status bar)

4.0及以下两种方法 1,通过特定的主题,如Theme.Black.NoTitleBar.Fullscreen. 2,通过代码  在Activity中 隐藏状态栏:getWindow().setFla...

《iOS Human Interface Guidelines》——The Status Bar

本文翻译自苹果官方文档《iOS Human Interface Guidelines》——Bars,讲解状态栏的相关注意事项

IOS 知识小集(Status Bar变换)

转载:http://blog.csdn.net/wk598/article/details/51955068 iOS 中经常会有需要在某个界面改变状态栏颜色或者某个界面隐藏状态栏的需求。而改...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)