iOS UIApplicatin和它的delegate

时间:2021-12-02 07:19:44

每一个UIApplication代表一个应运程序,而且UIApplication是个单例类;

ios程序一旦启动,创建的第一个对象就是UIApplication对象;
 
 // 拿到UIApplication对象 *******************
    UIApplication *appliction = [UIApplication sharedApplication];
    // 1:设置应用程序图标右上角的红色提醒数字**********************
    appliction.applicationIconBadgeNumber = 998;
    
    // 2:设置联网指示器的可见性 *********************************
    appliction.networkActivityIndicatorVisible = YES;
    
    /** 3:状态栏样式 状态栏的隐藏、显示 *****************************
        3.1:控制器管理:
            样式:- (UIStatusBarStyle)preferredStatusBarStyle;
            可见性:- (BOOL)prefersStatusBarHidden;
        3.2:由application统一管理 一次设置 整个程序都一样的状态栏
            好处:一次性管理 可添加动画效果
            *:如果想利用UIApplication来管理状态栏,首先得修改Info.plist的设置
     */
    // 样式
    appliction.statusBarStyle = UIStatusBarStyleLightContent;
    // 可见性 带动画
    [appliction setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];
    
    /* 4:设置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://ios.itcast.cn"]];
     
     打开其他app程序 ....
     */
 =================================UIApplication的delegate===============
UIApplication的delegate 
在app受到干扰时,会产生一些系统事件,这时UIApplication会通知它的delegate对象,让delegate代理来处理这些系统事件
每次新建一个ios程序时,xcode会自动生成一个delegate类作为UIApplication的delegate
里边的主要方法来处理一下事件
 /*
*程序启动完毕时调用的方法 系统自动调用
*/
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
return YES;
} /*
* 即将失去焦点,不可交互的时候 调用这个方法
*/ - (void)applicationWillResignActive:(UIApplication *)application
{ } /*
* 应运程序进入后台的时候调用 一般在该方法中保存当前的程序的状态
*/
- (void)applicationDidEnterBackground:(UIApplication *)application
{ } /*
* 应运程序进入前台的时候调用 对保存的数据重新加载
*/
- (void)applicationWillEnterForeground:(UIApplication *)application
{ } /*
* 重新获取焦点 能够和用户交互
*/
- (void)applicationDidBecomeActive:(UIApplication *)application
{ } /*
* 应运程序即将被销毁的时候 会调用该方法 如果应运程序处于挂起状态的时候 无法调用该方法
*/
- (void)applicationWillTerminate:(UIApplication *)application
{ } /*
* 应运程序内存警告方法
* 一般在该方法中释放不需要的内存
*/
- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application
{ }