iOS UIApplication以及状态栏显隐

一个应用程序只有一个application对象,application是单例的。

一个应用程序启动后船创建的第一个对象是UIApplication对象

利用UIApplication对象,能进行一些应用级别的操作。

    UIApplication *app = [UIApplication sharedApplication];

// 20代表清除图标右上角的数字 app.applicationIconBadgeNumber = 20; // 设置显示联网状态 app.networkActivityIndicatorVisible = YES;
    UIApplication有个功能十分强大的openURL:方法
    - (BOOL)openURL:(NSURL*)url;
    // URL : 一个资源的唯一路径
    // URL的组成 == 协议头://主机域名/路径
    // 网络资源URL的组成 == http://www.baidu.com/1.png
    // 本地文件资源URL的组成 == file:///Users/apple/Desktop/1.png
    [app openURL:[NSURL URLWithString:@"http://www.baidu.com"]];
   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程序

  

从iOS7开始,系统提供了2种管理状态栏的方式
通过UIViewController管理(每一个UIViewController都可以拥有自己不同的状态栏)
通过UIApplication管理(一个应用程序的状态栏都由它统一管理)

在iOS7中,默认情况下,状态栏都是由UIViewController管理的,UIViewController实现下列方法就可以轻松管理状态栏的可见性和样式 状态栏的样式 - (UIStatusBarStyle)preferredStatusBarStyle; 状态栏的可见性 - (BOOL)prefersStatusBarHidden;
- (BOOL)prefersStatusBarHidden; 

iOS7以后如果想使用UIApplication全局管理状态栏,不仅写以下代码外,还要在plist里面增加下图红框内属性,设置为NO,(此时prefer的方法会失效,只有设置为yes才会掉用perfer方法)。
//    app.statusBarHidden = YES; 设置隐藏
//    app.statusBarStyle = UIStatusBarStyleLightContent; //设置为白色 

  //  [app setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];  设置带动画隐藏
  //  [app setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];      设置风格

  

posted @ 2016-01-27 11:39  欲眠  阅读(165)  评论(0编辑  收藏  举报