zoukankan      html  css  js  c++  java
  • UIApplication

    • 简单介绍
      • UIApplication对象是应用程序的象征,一个UIApplication对象就代表一个应用程序。
      • 每一个应用都有自己的UIApplication对象,而且是单例的,如果试图在程序中新建一个UIApplication对象,那么将报错提示。
      • 通过[UIApplication sharedApplication]可以获得这个单例对象
      • 一个iOS程序启动后创建的第一个对象就是UIApplication对象,且只有一个(通过代码获取两个UIApplication对象,打印地址可以看出地址是相同的)。
      • 利用UIApplication对象,能进行一些应用级别的操作
    • 2.应用级别的操作示例:

      • 设置应用程序图标右上角的红色提醒数字(如QQ消息的时候,图标上面会显示1,2,3条新信息等)

        UIApplication * app = [UIApplication sharedApplication];
        // 设置appIcon提醒数字,必须注册用户通知
        app.applicationIconBadgeNumber = 10;
        // 创建用户通知
        UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge categories:nil];
        // 注册用户的通知
        [app registerUserNotificationSettings:settings];

      • 设置联网指示器的可见性

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

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

        • 通过UIViewController管理(每一个UIViewController都可以拥有自己不同的状态栏)

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

          #pragma mark-设置状态栏的样式
          -(UIStatusBarStyle)preferredStatusBarStyle
          {
          //设置为白色
          //return UIStatusBarStyleLightContent;
          //默认为黑色
          return UIStatusBarStyleDefault;
          }
          #pragma mark-设置状态栏是否隐藏(否)
          -(BOOL)prefersStatusBarHidden
          {
          return NO;
          }
        • 通过UIApplication管理(一个应用程序的状态栏都由它统一管理)

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

     /设置状态栏的样式
        app.statusBarStyle=UIStatusBarStyleDefault;//默认(黑色)
        //设置为白色+动画效果
          [app setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];
        //设置状态栏是否隐藏
        app.statusBarHidden=YES;
          //设置状态栏是否隐藏+动画效果
        [app setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];
        • 补充:
          • 既然两种都可以对状态栏进行管理,那么什么时候该用什么呢?
          • 如果状态栏的样式只设置一次,那就用UIApplication来进行管理。
          • 如果状态栏是否隐藏,样式不一样那就用控制器进行管理。
          • UIApplication来进行管理有额外的好处,可以提供动画效果。
      • openURL:方法

        • UIApplication有个功能十分强大的openURL:方法

           - (BOOL)openURL:(NSURL*)url;
        • openURL:方法的部分功能有

          • 打电话
            UIApplication *app = [UIApplicationsharedApplication]; 
            [app openURL:[NSURLURLWithString:@"tel://10086"]];
          • 发短信
            [app openURL:[NSURLURLWithString:@"sms://10086"]];
          • 发邮件
            [app openURL:[NSURLURLWithString:@"mailto://12345@qq.com"]];
          • 打开一个网页资源
            [app openURL:[NSURLURLWithString:@"http://www.baidu.com"]];
          • 打开其他app程序 openURL方法,可以打开其他APP。

          • URL补充:

    二、程序启动的完整过程

    1.main函数

    2.UIApplicationMain

    • 创建UIApplication对象

    • 创建UIApplication的delegate对象

    3.delegate对象开始处理(监听)系统事件(没有storyboard)

    • 程序启动完毕的时候, 就会调用代理的application:didFinishLaunchingWithOptions:方法

    • 在application:didFinishLaunchingWithOptions:中创建UIWindow

    • 创建和设置UIWindow的rootViewController

    • 显示窗口

    3.根据Info.plist获得最主要storyboard的文件名,加载最主要的storyboard(有storyboard)

    • 创建UIWindow

    • 创建和设置UIWindow的rootViewController

    • 显示窗口

  • 相关阅读:
    c文件操作库
    双链常用操作2
    双向链表常用操作
    c队列操作
    c日期格式化操作之date
    单链常用操作类
    c字符串常用操作
    双向链表通用类
    c栈操作
    poj2509
  • 原文地址:https://www.cnblogs.com/luoze/p/5468177.html
Copyright © 2011-2022 走看看