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;
}

But the status bar is still black against the black background.

I know its possible to change this app-wide by setting UIViewControllerBasedStatusBarAppearance=NO in info.plist, but I actually need to alter this on a viewController by viewController basis at runtime.

A:

I discovered that if your ViewController is inside a navigationController then the navigationController’s navigationBar.barStyle determines the statusBarStyle.

Setting your navigationBar’s barStyle to UIBarStyleBlackTranslucent will give white status bar text (ie. UIStatusBarStyleLightContent), and UIBarStyleDefault will give black status bar text (ie. UIStatusBarStyleDefault).

Note that this applies even if you totally change the navigationBar’s color via its barTintColor.

时间: 2024-11-07 16:24:55

UIStatusBarStyle PreferredStatusBarStyle does not work on iOS 7的相关文章

【转】UINavigationBar 使用总结

原文网址:http://www.jianshu.com/p/f0d3df54baa6 UINavigationBar是我们在开发过程中经常要用到的一个控件,下面我会为大家介绍一些常用的用法. 1. 设置导航栏的标题 这个不多说,直接上代码self.navigationItem.title = @"UINavigationBar使用总结"; 2. 设置导航栏的背景颜色 //通过barTintColor来设置背景色 self.navigationController.navigationB

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

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

iOS preferredStatusBarStyle

本文链接:https://blog.csdn.net/qq_35951382/article/details/89632114最近在处理项目中警告??问题因为项目中导航栏颜色有很多种从而状态栏就会产生二种在 iOS 2.0 --> 9.0###UIStatusBarStyleDefault###UIStatusBarStyleLightContent //之前项目设置状态栏都是这种,但这种在iOS9.0后就被遗弃 [[UIApplication sharedApplication] setSta

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开发系列--UITableView使用全面解析

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