本文主要总结了以下两点:
- 什么是UIApplication
- 常用属性及方法的使用:
- 获取对象
- 设置状态栏隐藏
- 改变状态栏字颜色:把默认的黑色改为白色
- 显示和隐藏状态栏的网络活动标志
- applicationIconBadgeNumber
- 打开外部资源: openURL:方法
什么是UIApplication
- 提供了iOS程序运行期间的控制和协作工作
- 一个iOS程序启动后创建的第一个对象就是UIApplication单利对象
- 通过[UIApplication sharedApplication] 获取该单利对象
常用属性已方法的使用
1.获取对象
- 获得UIApplication对象
* [UIApplication sharedApplication];
- 获得UIApplicationDelegate对象
* [[UIApplication sharedApplication] delegate];
- 获得UIWindow对象
* [[UIApplication sharedApplication] windows]; // UIWindow数组
* [[UIApplication sharedApplication] keyWindow]; // UIWindow数组中最后调用makeKeyAndVisible方法的UIWindow对象
2.设置状态栏隐藏
第一步:在
Info.plist
中添加一个View controller-based status bar appearance
设置选项,设置为NO
第二步:接着设置(两种方式)
- 在
Info.plist
中添加Status bar is initially hidden
设置选项,设置为YES
或者 如图所示
3.改变状态栏字颜色:把默认的黑色改为白色
第一步:在
Info.plist
中设置UIViewControllerBasedStatusBarAppearance
为NO
第二步:接着设置(两种方式)
- plist : 在
Info.plist
中添加UIStatusBarStyle
,设置UIStatusBarStyleDefault
或者UIStatusBarStyleLightContent
- 代码设置 :
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
4.显示和隐藏状态栏的网络活动标志
// 在向服务端发送请求状态栏显示网络活动标志:
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
// 这里是发送服务端请求的代码
// ...
// 请求结束状态栏隐藏网络活动标志:
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
5.applicationIconBadgeNumber
// badge数字
[UIApplication sharedApplication].applicationIconBadgeNumber = 3;
float version = [[[UIDevice currentDevice] systemVersion] floatValue];
if (version >= 8.0) {
// 因为在IOS8中要想设置applicationIconBadgeNumber,需要用户的授权,在iOS8及以上,需要加上下面的代码,
// 但是这两句如果在iOS7的系统中运行的话就会报错,所以需要先判断iOS的版本后使用:
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge categories:nil];
[[UIApplication sharedApplication] registerUserNotificationSettings:settings];
[application registerForRemoteNotifications];
}
// 消掉右上角badge number
[UIApplication sharedApplication].applicationIconBadgeNumber = 0;
6.打开外部资源: UIApplication有个功能十分强大的openURL:方法
- (BOOL)openURL:(NSURL*)url;
openURL:方法的部分功能有
UIApplication *app = [UIApplication sharedApplication];
// 打电话
[app openURL:[NSURL URLWithString:@"tel://10086”]];
// 发短信
[app openURL:[NSURL URLWithString:@"sms://10086"]];
// 发邮件
[app openURL:[NSURL URLWithString:@"mailto://12345@qq.com"]];
// 打开一个网页资源
[app openURL:[NSURL URLWithString:@"http://www.baidu.com"]];