iOS preferredStatusBarStyle

本文链接:https://blog.csdn.net/qq_35951382/article/details/89632114
最近在处理项目中警告??问题
因为项目中导航栏颜色有很多种从而状态栏就会产生二种
在 iOS 2.0 --> 9.0
###UIStatusBarStyleDefault
###UIStatusBarStyleLightContent

//之前项目设置状态栏都是这种,但这种在iOS9.0后就被遗弃
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];//‘setStatusBarStyle:‘ is deprecated: first deprecated in iOS 9.0 - Use -[UIViewController preferredStatusBarStyle]
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
1
2
3
因为在iOS9.0就被遗弃了,这些方法会报警告,所以强迫症不用了,根据他的提示用
###preferredStatusBarStyle

@property(nonatomic, readonly) UIStatusBarStyle preferredStatusBarStyle NS_AVAILABLE_IOS(7_0) __TVOS_PROHIBITED; // Defaults to UIStatusBarStyleDefault
1
而且最低支持 iOS 7,用户手机系统适配方面没问题.
开始着手用在ViewController 里面用preferredStatusBarStyle

- (UIStatusBarStyle)preferredStatusBarStyle{
NSLog(@"go style");
return UIStatusBarStyleLightContent;
}
1
2
3
4
发现根本状态栏的颜色没变,然后打印也没有走,一脸懵逼.
然后重新创建一个项目,直接写这个- (UIStatusBarStyle)preferredStatusBarStyle方法发现走了,颜色也变了,再次懵逼了.

是不是跟 setStatusBarStyle 有冲突,于是回忆setStatusBarStyle需要注意的东西,想起之前设置 状态栏颜色 在info.plist 中 View controller-based status bar appearance 设置为NO 才能改变状态栏的颜色,把 View controller-based status bar appearance 设置为YES 再跑一变发现走了preferredStatusBarStyle 颜色也变了.

在NavigationController 中写

//当设置了 childViewControllerForStatusBarStyle 后,不会进入这里
- (UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleDefault;
}

//以 topViewController 的 preferredStatusBarStyle 来设置 statusBarStyle
- (UIViewController *)childViewControllerForStatusBarStyle {
return self.topViewController;
}
1
2
3
4
5
6
7
8
9
###当你想改变状态栏颜色时在ViewController

- (UIStatusBarStyle)preferredStatusBarStyle{
return UIStatusBarStyleLightContent;
}
1
2
3
#如果之前在info.plist 中 View controller-based status bar appearance 设置 NO,一定要改为为 YES,如果之前没有设置就可以不用管,不然preferredStatusBarStyle 不调用

原文地址:https://www.cnblogs.com/lijinfu-software/p/11350928.html

时间: 2024-10-14 14:03:11

iOS preferredStatusBarStyle的相关文章

iOS 修改状态栏preferredStatusBarStyle不执行问题

一.在老版本的iOS中,状态栏永远都是白色风格.而在iOS 7中,我们可以修改每个view controller中状态栏的外观.通过UIStatusBarStyle常量可以指定状态栏的内容是暗色或亮色.默认情况下,状态栏的显示是暗色.也就是说,状态栏上的时间.电池指示器和Wi-Fi信号显示为暗色.如果导航栏中使用暗色为背景,那么看起来的效果如下图所示: 如上图这种情况下,我们可能希望将导航栏的风格修改为亮色.这里有两个方法可以实现.在iOS 7中,我们可以在每个view controller中o

UIStatusBarStyle PreferredStatusBarStyle does not work on iOS 7

Q: In my iPhone application built with Xcode 5 for iOS 7 I set UIViewControllerBasedStatusBarAppearance=YES in info.plist, and in my ViewController I have this code: -(UIStatusBarStyle) preferredStatusBarStyle{ returnUIStatusBarStyleLightContent; } B

IOS总结_IOS7.0以后改变状态栏字体颜的问题

首先info.plist文件中,加入View controller-based status bar appearance项 如果设为YES,则View controller对status bar的设置优先级高于application的设置:设置为NO则以application的设置为准. 虽然7.0SDK后在UIViewController中也加入加入了 - (UIStatusBarStyle)preferredStatusBarStyle NS_AVAILABLE_IOS(7_0); //

IOS UIApplication使用

- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. // UIApplication *app = [UIApplication sharedApplication]; // UIApplication *app1 = [UIApplication sharedApplication]; //// UIApplicat

iOS之UIApplication详解

UIApplication对象特点: 特点1: UIApplication对象是应用程序的象征,一个UIApplication对象就代表一个应用程序,而且是单例的.(用来封装整个应用程序的一个对象, 比如当应用程序执行到某个时期要做什么, 生命周期等.) 获取UIApplication对象:[UIApplication sharedApplication] 一个iOS程序启动后,创建的第一个对象就是UIApplication对象,且只有一个. 举例:通过代码获取两个UIApplication对象

IOS中设置状态栏的状态

IOS上 关于状态栏的相关设置(UIStatusBar) 知识普及 ios上状态栏 就是指的最上面的20像素高的部分 状态栏分前后两部分,要分清这两个概念,后面会用到: 前景部分:就是指的显示电池.时间等部分: 背景部分:就是显示黑色或者图片的背景部分: 如下图:前景部分为白色,背景部分为黑色  注意:这里只涉及到ios7以及更高版本,低版本下面的讲解可能无效. 设置statusBar的[前景部分] 简单来说,就是设置显示电池电量.时间.网络部分标示的颜色, 这里只能设置两种颜色: 默认的黑色(

更改ios状态栏颜色

更改状态栏颜色 将iOS状态栏默认颜色为黑色,但有时为了需求,我们需要更改状态栏的颜色,常用的方式有: 方法一: 1.在info.plist添加View controller-based status bar appearance为NO: 2.在页面执行[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent]. 但是这种做法在ios9.0以前是完全没有问题的,进入iOS9.0后,便会出现如

IOS之UIKit_Day15

day15 回顾:        1.绘图:        编写位置:重写UIView的drawRect{}方法        调用:系统自动调用        绘制顺序:先绘制父视图中的背景属性---->调用父视图中的drawRect方法------->绘制各个子视图的背景------>调用各个子视图的drawRectf方法        重绘:调用setNeedDisplay方法          2 UIBezierPath贝塞尔曲线               是对CoreGra

IOS开发系列--UITableView使用全面解析

--UIKit之UITableView 概述 在iOS开发中UITableView可以说是使用最广泛的控件,我们平时使用的软件中到处都可以看到它的影子,类似于微信.QQ.新浪微博等软件基本上随处都是UITableView.当然它的广泛使用自然离不开它强大的功能,今天这篇文章将针对UITableView重点展开讨论.今天的主要内容包括: 基本介绍 数据源 代理 性能优化 UITableViewCell 常用操作 UITableViewController MVC模式 基本介绍 UITableVie