美文网首页导航栏
iOS 隐藏状态栏

iOS 隐藏状态栏

作者: 阿斯兰iOS | 来源:发表于2017-08-07 16:44 被阅读158次

如何隐藏某个控制器的状态栏?

1、在 info.plist 文件增加 View controller-based status bar appearance 属性,设置值为 YES。

2、重写控制器的方法:

- (BOOL)prefersStatusBarHidden {
    return self.shouldHiddeStatusBar;
}

3、需要改变状态栏状态,就调用 setNeedsStatusBarAppearanceUpdate 方法:

[self setNeedsStatusBarAppearanceUpdate];

4、注意!!!

如果修改了 toVC 的 modalPresentationStyle,一定要修改 toVC 的 modalPresentationCapturesStatusBarAppearance 属性为 YES,上面的代码才有效!

例如,present 某个控制器的时候,想让当前控制器不消失,就要修改 toVC 的 modalPresentationStyle 属性为 UIModalPresentationOverFullScreen。当 toVC 发生某些事情就隐藏状态栏,需要这样写:

// fromVC.m 

UIViewController *toVC = [UIViewController new];
// 当前控制器不消失,toVC 透明的时候能看到
toVC.modalPresentationStyle = UIModalPresentationOverFullScreen;
// 是否接管状态栏外观,即重写的 prefersStatusBarHidden 等方法是否会被调用
toVC.modalPresentationCapturesStatusBarAppearance = YES;
[self presentViewController:toVC animated:YES completion:nil];

被 presented 的控制器要这样写:

// toVC.m 

// 重写
- (BOOL)prefersStatusBarHidden {
    return self.shouldHiddeStatusBar;
}

// 某个事件处理函数
- (void)buttonClick {
    // 刷新状态栏
    [self setNeedsStatusBarAppearanceUpdate];
}

参考文章:
UIViewController's prefersStatusBarHidden not working

相关文章

  • iOS 状态栏的隐藏显示与状态栏样式的设置

    iOS 状态栏的隐藏显示与状态栏样式的设置 iOS 状态栏的隐藏显示与状态栏样式的设置

  • iOS-隐藏状态栏

    IOS9: 在需要隐藏状态栏的ViewController里面添加下面的方法 改变状态栏的样式 IOS9以前:隐藏...

  • iOS状态栏显示与隐藏

    在iOS 7.0及其以后版本中,iOS状态栏的显示和隐藏 还有状态栏的颜色修改方式如下: (1) 整个app隐藏 ...

  • iOS 隐藏/显示 状态栏

    iOS状态栏Status的隐藏,有两种状态,一种是隐藏整个应用的状态栏,一种是隐藏局部的状态栏。 一、隐藏全部状态...

  • iOS8隐藏系统状态栏

    ios8隐藏系统状态栏有两种方法 1、隐藏系统的状态栏.代码如下: //UIStatusBarStyleDefau...

  • iOS开发-隐藏/显示状态栏

    iOS 7.0及其以后版本中,隐藏/显示状态栏方式: (1) 整个App始终隐藏状态栏: 在Info.plist中...

  • ios状态栏UIStatusBar设置

    状态栏就是显示运营商、时间、电量、WiFi的那块 隐藏和显示状态栏 一、隐藏状态栏 iOS8以上的适配: 当然如果...

  • 2018-04-09

    原文:IOS状态栏和导航栏的控制问题 IOS的项目多数会遇到控制状态栏和导航栏的问题,比如隐藏状态栏、控制状态栏的...

  • 隐藏/显示状态栏

    iOS 7.0及其以后版本中,隐藏/显示状态栏方式: 1. 整个App始终隐藏状态栏: 在Info.plist中...

  • iOS状态栏的相关设置

    iOS状态栏的相关设置 一:状态栏的隐藏和显示(全局设置) 1...

网友评论

  • 小志Shannon:灰常感谢,搞了好久为啥modal出来的控制器设置了隐藏无效,原来是少设置了属性。:clap:

本文标题:iOS 隐藏状态栏

本文链接:https://www.haomeiwen.com/subject/ydjalxtx.html