1,什么是UIApplication
UIApplication对象是应用程序的象征
每一个应用都有自己的UIApplication对象,而且是单例的
通过[UIApplication sharedApplication]可以获得这个单例对象
一个iOS程序启动后创建的第一个对象就是UIApplication对象
利用UIApplication对象,能进行一些应用级别的操作
2,UIApplication的常用属性
设置应用程序图标右上角的红色提醒数字
@property(nonatomic) NSInteger applicationIconBadgeNumber;
设置联网指示器的可见性
@property(nonatomic,getter=isNetworkActivityIndicatorVisible) BOOL networkActivityIndicatorVisible;
3,ios7中的状态栏
从iOS7开始,系统提供了2种管理状态栏的方式
通过UIViewController管理(每一个UIViewController都可以拥有自己不同的状态栏)
通过UIApplication管理(一个应用程序的状态栏都由它统一管理)
在iOS7中,默认情况下,状态栏都是由UIViewController管理的,UIViewController实现下列方法就可以轻松管理状态栏的可见性和样式
状态栏的样式
- (UIStatusBarStyle)preferredStatusBarStyle;
状态栏的可见性
- (BOOL)prefersStatusBarHidden;
如果想利用UIApplication来管理状态栏,首先得修改Info.plist的设置
接下来是是我写的一个demo:
源码下载地址:http://download.youkuaiyun.com/detail/liu537192/8488595
效果图:
核心代码:
//
// JLViewController.m
// 05-UIApplication介绍
//
// Created by XinYou on 15-3-10.
// Copyright (c) 2015年 vxinyou. All rights reserved.
//
#import "JLViewController.h"
@interface JLViewController ()
/**
* 设置应用程序图标右上角的红色提醒数字
*/
- (IBAction)setIconNumber;
/**
* 设置联网指示器的可见性
*/
- (IBAction)setNetworkIndicatorVisible;
/**
* 设置状态栏的样式
*/
- (IBAction)setStatusBarStyle;
/**
* 隐藏状态栏
*/
- (IBAction)setStatusBarHidden;
@end
@implementation JLViewController
- (void)viewDidLoad
{
[super viewDidLoad];
}
// 下面这两个方法是以静态的方式来管理状态栏,
// 我们可以通过UIApplication来动态的管理状态栏的样式以及显示和隐藏
//- (BOOL)prefersStatusBarHidden{
//
// return YES;
//}
//- (UIStatusBarStyle)preferredStatusBarStyle{
//
// return UIStatusBarStyleLightContent;
//}
- (IBAction)setIconNumber {
UIApplication *application = [UIApplication sharedApplication];
application.applicationIconBadgeNumber = 20;
// 0表示不显示数字
// application.applicationIconBadgeNumber = 0;
}
- (IBAction)setNetworkIndicatorVisible {
UIApplication *application = [UIApplication sharedApplication];
application.networkActivityIndicatorVisible = YES;
}
- (IBAction)setStatusBarStyle {
UIApplication *application = [UIApplication sharedApplication];
// application.statusBarStyle = UIStatusBarStyleLightContent;
// 这方法可以动画的方式改变状态栏的样式。
[application setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];
}
- (IBAction)setStatusBarHidden {
UIApplication *application = [UIApplication sharedApplication];
application.statusBarHidden = YES;
}
@end