iOS7下隐藏statusbar

info.plist文件中,View controller-based status bar appearance项设为YES,则View controller对status bar的设置优先级高于application的设置。为NO则以application的设置为准,view controller的prefersStatusBarHidden方法无效,是根本不会被调用的。

一、如果View controller-based status bar appearance 设为YES。

这时 view controller中对status bar的设置优先级高于application的设置,用下面的方式隐藏status bar:

1、在view controller中调用setNeedsStatusBarAppearanceUpdate,更新status bar的显示。

- (void)viewDidAppear:(BOOL)animated

{

  [super viewDidAppear:animated];

  if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)]) {

     [self prefersStatusBarHidden];

     [self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];

  }

}

2、覆盖view controller的prefersStatusBarHidden的实现,返会YES。

- (BOOL)prefersStatusBarHidden
{
   return YES;
}

二、如果View controller-based status bar appearance 设为NO,这时application的设置优先级最高,用下面的方式隐藏status bar:

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:NO];

综合上面的结论,如果iOS6和iOS7都支持,则处理方式如下:

一、如果View controller-based status bar appearance 设为NO。

则在iOS6和iOS7都是用下面的方法隐藏status bar。

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:NO];

二、如果View controller-based status bar appearance 设为YES。

则需要判断当前是iOS6还是iOS7。如果是iOS6,则还通过sharedApplication隐藏。

如果是iOS7,则用setNeedsStatusBarAppearanceUpdate加prefersStatusBarHidden的方式来隐藏 status bar。

取info.plist中 View controller-based status bar appearance中的设置:

NSNumber *isVCBasedStatusBarAppearanceNum = [[NSBundle mainBundle]objectForInfoDictionaryKey:@"UIViewControllerBasedStatusBarAppearance"];

if (isVCBasedStatusBarAppearanceNum)
{
  _isVCBasedStatusBarAppearance = isVCBasedStatusBarAppearanceNum.boolValue;

}  else {
_isVCBasedStatusBarAppearance = YES; // default

}
时间: 2024-12-30 03:15:07

iOS7下隐藏statusbar的相关文章

iOS7下隐藏statusbar的详细研究--转

info.plist文件中,View controller-based status bar appearance项设为YES,则View controller对status bar的设置优先级高于application的设置.为NO则以application的设置为准,view controller的prefersStatusBarHidden方法无效,是根本不会被调用的. 一.如果View controller-based status bar appearance 设为YES.这时 vie

iOS7下隐藏status bar的详细研究

info.plist文件中,View controller-based status bar appearance项设为YES,则View controller对status bar的设置优先级高于application的设置.为NO则以application的设置为准,view controller的prefersStatusBarHidden方法无效,是根本不会被调用的. 1.View controller-based status bar appearance设为YES. 这时 view

如何iOS6和iOS7下隐藏UITabBar

不栽跟头,你就不会进步! 这两天适配iOS6,在UITabBar隐藏后原区域不响应点击事件的问题上裹足不前,异常上火(不用心,就会这样)! 对于iOS7而言,隐藏UITabBar很容易: self.tabBarController.tabBar.hidden = YES; 然后把self.view的高度加上个tabBar的高度(默认高度49)就ok了,可谓不费吹灰之力!iOS7以下就不行了! 这里有一段代码,iOS6及以上系统都可以用,我就直接粘过来了 -(void)makeTabBarHidd

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

转载自:http://blog.csdn.net/volcan1987/article/details/14227313 iOS7里status bar的实现跟iOS6下有写不一样,前段时间碰到了这个问题,今天总结下 首先网上有很多解决办法,但是有些我觉得并没有按照苹果的思路来,比如把UIViewControllerBasedStatusBarAppearance在plist里设置为NO的方法,这个方法的确可行,但是并不是一个“正确”的思路,而且会有些问题,比如,当你在某个界面隐藏了status

[IOS_HTML5]IOS7下HTML5的各种坑

 这些天 Apple 已经推出了 iOS 7 以及 iPhone 5S 和 iPhone 5C .Apple 面向 web 开发者仅仅发布了 10% 的所需信息,我可以说这是自 1.0 以来,bug 最多的 Safari 版本嘛.文本我将介绍新的 API 和特性,以及如果你有网站或 webapp ,马上需要处理的大多数问题. 简而言之 没有时间读这篇长文? UI 变化:工具栏色彩,新的全屏导航问题,新的主屏图标尺寸:iPhone 未使用 <title>:可能与新手势冲突. 新设备:对 web

UITextField限制汉字数量最正确的姿势,解决iOS7下substringToIndex方法导致的崩溃

今天在写一个限制UITextField汉字数量的需求,原以为非常简单的一个需求,在实际开发中遇到了很多问题. 首先,汉字的输入时的联想词在输入到TextFiled时,并不会走 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string; 这导致了在这里进行长度限制的代码都会失效.此路不通. 经过查找资料,得知

IOS7下,AVAudioRecorder需要注意的一点

iOs7下,使用AVAudioRecorder录音的时候,会在顶部出现一个红框,或者红框一闪而过,这时候需要设置AVAudioSession,如下代码: AVAudioSession * session = [AVAudioSession sharedInstance]; NSError * sessionError = nil; [session setCategory:AVAudioSessionCategoryPlayAndRecord error:&sessionError]; if (

iOS7下滑动返回与ScrollView共存二三事

[转载请注明出处] = =不是整篇复制就算注明出处了亲... iOS7下滑动返回与ScrollView共存二三事 [前情回顾] 去年的时候,写了这篇帖子iOS7滑动返回.文中提到,对于多页面结构的应用,可以替换interactivePopGestureRecognizer的delegate以统一管理应用中所有页面滑动返回的开关,比如在UINavigationController的派生类中 1 //我是一个NavigationController的派生类 2 - (id)initWithRootV

【从零学习openCV】IOS7下的openCV开发起步(Xcode5.1.1&amp;amp;openCV2.49)

前言: 开发IOS7已经有一月的时间了,近期在准备推研的事,有点想往CV方向发展,于是開始自学openCV. 关注CSDN已经非常久了,也从非常多博主那学到了非常多知识,于是我也从这周开启自己的blog之旅,从零開始学openCV,从零開始做笔记写blog,哈哈~ 好了,废话不多说,进入正题.. IOS7下使用openCV Mac OS下要使用openCV当然要编译,可是假设仅仅是在ios下使用openCV的话,仅仅须要将bulid好的opencv2.framework导入到project中就可