UIApplication

  • UIApplication对象是应用程序的象征
  • 每一个应用都有自己的UIApplication对象,而且是单例的
  • 通过[UIApplication sharedApplication]可以获得这个单例对象
  • 一个iOS程序启动后创建的第一个对象就是UIApplication对象
  • 利用UIApplication对象,能进行一些应用级别的操作

设置应用程序图标右上角的红色提醒数字:

// 1.获取应用程序的象征
UIApplication *application = [UIApplication sharedApplication];
// 2.设置提醒数字
application.applicationIconBadgeNumber = 10;
// 3.创建通知对象
UIUserNotificationSettings *setting = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge categories:nil];
// 4.注册用户通知
[application registerUserNotificationSettings:setting];

设置联网指示器的可见性

@property(nonatomic,getter=isNetworkActivityIndicatorVisible) BOOL networkActivityIndicatorVisible;

iOS7中的状态栏

从iOS7开始,系统提供了2种管理状态栏的方式

  • 通过UIViewController管理(每一个UIViewController都可以拥有自己不同的状态栏)
  • 通过UIApplication管理(一个应用程序的状态栏都由它统一管理)

默认情况下,状态栏都是由UIViewController管理的,UIViewController实现下列方法就可以轻松管理状态栏的可见性和样式:

// 状态栏的样式
- (UIStatusBarStyle)preferredStatusBarStyle; 

// 状态栏的可见性
- (BOOL)prefersStatusBarHidden;

利用UIApplication来管理状态栏

如果想利用UIApplication来管理状态栏,首先得修改Info.plist的设置

View controller-based status bar appearance :NO

- (void)setStatusBarHidden:(BOOL)hidden withAnimation:(UIStatusBarAnimation)animation;

openURL

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://[email protected]"]];

打开一个网页资源
[app openURL:[NSURL URLWithString:@"http://ios.itcast.cn"]];

打开其他app程序