ios UIApplication简单使用

1,一个程序只有一个UIApplication

//获取
UIApplication *app = [UIApplication sharedApplication];

//错误获取
UIApplication *app = [[UIApplication alloc] init];
//UIApplication是单例的,如果试图在程序中新建一个UIApplication对象,那么将提示报错

 2,使用获取的UIApplication,可以进行一些应用级别操作(app图标的提醒框,联网状态显示,打电话,打开网页,控制状态栏

//app图标的提醒框(图标上提示有信息的小红点)
app.applocationIconBadgeNumber = 10;  //10为提醒数字

//实现上述方法,必须注册用户通知:

//创建用户通知
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge categories:nil];
//注册用户的通知
[app registerUserNotificationSettings: settings];

 

//设置联网状态
app.networkActivityIndicatorVisible = YES;

 

//打开网页
NSURL *url = [NSURL URLWithString: @"http://www.baidu.com"];
[[UIApplication sharedApplication] openURL: url];

//协议头 :http,https,file,tel

 

//控制状态栏

//ios7以后,状态栏默认由控制器决定,所以:

//  (1)将info.plist文件的View controller-based status bar appearance设置为NO时,在控制器中对状态栏的控制都将无效

//隐藏状态栏
[app setStatusBarHidden: YES]; 
  
//设置状态栏的字体颜色模式
[app setStatusBarStyle:UIStatusBarStyleLightContent];

//设置隐藏状态栏动画
[app setStatusBarHidden: YES withAnimation: UIStatusBarAnimationSlide];





//  (2)将info.plist文件的View controller-based status bar appearance设置为YES时,UIApplication修改控制栏无效,需要在控制器(ViewController)中添加方法

//是否隐藏状态栏
- (BOOL)prefersStatusBarHidden {
          return YES;
}
//设置状态栏字体颜色
- (UIStatusBarStyle)preferredStatusBarStyle {
          return UIStatusBarStyleLightContent;
}

 3,UIApplicationDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
       //程序启动完成时调用
}

- (void)applicationWillResignActive:(UIApplication *)application {
       //程序失去焦点时调用  意味着不能和用户交互
}

- (void)applicationDidEnterBackground:(UIApplication *)application {
       //程序进入后台时调用
}

- (void)applicationWillEnterForeground:(UIApplication *)application {
       //程序即将进入前台时调用
}

- (void)applicationDidBecomeActive:(UIApplication *)application {
       //程序获取焦点时调用  可以和用户交互
}

- (void)applicationWillTerminate:(UIApplication *)application {
       //程序被关闭时调用  此方法无法验证
}

- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application
{
       //程序接收到内存警告时调用
}


/*
程序运行时,调用顺序为:
     1  application:didFinishLaunchingWithOptions:
     2  applicationDidBecomeActive:
先进入程序,然后获取焦点,此时用户可以进行点击等交互操作
*/

/*
按压Home键:
     1  applicationWillResignActive:
     2  applicationDidEnterBackground:
先失去焦点,不能交互,然后程序进入后台
*/

/*
再次进入程序:
     1  applicationWillEnterForeground:
     2  applicationDidBecomeActive:
先调用即将进入前台方法,之后进入程序,获取焦点
*/

 

猜你喜欢

转载自2914905399.iteye.com/blog/2303087