- UIApplication对象是应用程序的象征
- 每个应用都有自己的UIApplication对象,而且是单例的
- 通过[UIApplicationsharedApplication]获得这个单例对象
- 一个iOS程序启动后创建的第一个对象就是UIApplication对象
- 利用UIApplication对象,能进行一些应用级别的操作
1* 整个APP中只有一个UIApplication,不能通过[[UIApplicationalloc]init]创建对象,否则程序一运行就会报错
错误信息如下(一般查看错误原因,看reason就好):
2* UIApplication对象属于单例对象,一般情况下单例对象的方法都是以share单词开头
通过shareApplication方法返回的对象总是同一个.
打印对象,可以看到两个指针变量都指向同一地址(对象).
3*设置appIcon提醒数字,必须注册用户通知
当我们不知道如何使用某个对象的时候,我们应该进入这个类的头文件中查看该类具有的属性以及方法,
进入UIApplication类,可以看到设置应用图标提醒数的属性
//set to 0 to hide. default is 0. In iOS 8.0and later, your application must register for user notifications using-[UIApplication registerUserNotificationSettings:] before being able to set theicon badge.
@property(nonatomic)NSIntegerapplicationIconBadgeNumber
//根据这个属性的说明可知,当applicationIconBadgeNumber =0的时候默认隐藏,从iOS8.0开始,必须注册用户通知才能设置应用图标提醒数字,否则是无法设置的
当只有app.applicationIconBadgeNumber = 10;这一行代码时,模拟器显示效果如图,虽然设置数字为10,依然无法显示
当我们注册之后,如下图所示注册方法
运行到模拟器中显示的效果为首先弹出选择框,由用户决定是否允许提醒,如果用户选择不允许,就不出出现提醒数字,当用户选择提醒,在以后使用软件的过程中就可以收到提醒:
4*设置联网状态
// showingnetwork spinning gear in status bar. default is NO
@property(nonatomic,getter=isNetworkActivityIndicatorVisible)BOOLnetworkActivityIndicatorVisible;
由此可知,联网状态的显示在状态栏,而且默认是NO,即不显示.如果需要显示把属性值改为YES!
//设置联网状态
app.networkActivityIndicatorVisible = YES; 显示效果如图
5*设置状态栏的显示与隐藏
//Setting statusBarHidden does nothing if your application is using the defaultUIViewController-based status bar system.
如果使用的是默认的基于status bar系统的UIViewController,设置statusBarHidden是没有任何作用的
@property(nonatomic,getter=isStatusBarHidden)BOOLstatusBarHidden;
在iOS7之前,状态栏由UIApplication对象控制,在iOS7之后状态栏由控制器决定
iOS之前
在iOS7之后
尽管现在状态栏默认由控制器管理,但是以后在一个项目中有很多个控制器,在每个控制器都需要设置状态栏的隐藏是非常麻烦的,所以最好还是通过UIApplication对象管理,如果想让UIApplication对象管理状态栏的显示与隐藏,需要对配置文件做一些设置,设置如下
经过上面的设置,就可以采用iOS7之前的做法了,状态栏不再显示
6*通过UIApplication控制网页