zoukankan      html  css  js  c++  java
  • UIApplication

      1、UIApplication 是 iPhone 应用程序的开始并且负责初始化并显示 UIWindow,并负责加载应用程序的第一个 UIView 到 UIWindow 窗体中。

      UIApplication 的另一个任务是帮助管理应用程序的生命周期,而 UIApplication 通过一个名字为 UIApplicationDelegate 的代理类来履行这个任务。

      尽管 UIApplication 会负责接收事件,而 UIApplicationDelegate 则决定应用程序如何去响应这些事件,UIApplicationDelegate 可以处理的事件包括应用程序的生命周期事件(比如程序启动和关闭)、系统事件(比如来电、记事项警 告)。

      Application 是一个单例对象

      iOS程序创建的第一个对象就是UIApplication对象

      通过[UIApplication sharedApplication]可以获得这个单例对象

    2、默认创建一个single模板时,系统自动创建了一个UIApplication的对象

    这里的nil其实是@"UIApplication",在UIApplicationMain中,同时又设置了application的代理:@"AppDelegate"

     // argc:系统传入参数的个数
     // argv:系统传入参数的值的列表
     // principalClassName:传入主要的类名
     // 第四个参数表示:给应用程序"application"指定一个代理对象
     return UIApplicationMain(argc, argv, @"UIApplication", @"AppDelegate");

    应用程序启动之后,先创建Application,再创建它的代理AppDelegate,之后创建UIwindow,再创建控制器,创建控制器的view,然后将控制器的view添加到UIWindow上。

    3.UIApplication常用属性:

    1-applicationIconBadgeNumber设置应用图标右上角的提示数字

    - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
        UIApplication *app = [UIApplication sharedApplication];
        
        /**
         iOS8.0之后通知消息要进行注册
         set to 0 to hide. default is 0. In iOS 8.0 and later, your application must register for user notifications using -[UIApplication registerUserNotificationSettings:] before being able to set the icon badge.
         */
        if ([UIDevice currentDevice].systemVersion.floatValue >= 8.0){
            //注册
            UIUserNotificationSettings *setting = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge categories:nil];
                                                   
            [app registerUserNotificationSettings:setting];
        }
        app.applicationIconBadgeNumber = 20;
        
    }

    2-设置应用联网状态

    @property(nonatomic,getter=isNetworkActivityIndicatorVisible) BOOL networkActivityIndicatorVisible __TVOS_PROHIBITED; // showing network spinning gear in status bar. default is NO

    - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
        UIApplication *app = [UIApplication sharedApplication];
        
        app.networkActivityIndicatorVisible = YES;
    }

    4、常用方法

    打开URL

    - (BOOL)openURL:(NSURL*)url NS_EXTENSION_UNAVAILABLE_IOS("");

    - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
        UIApplication *app = [UIApplication sharedApplication];
        
        NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];
        [app openURL:url];
    }

    ☂业精于勤,荒于嬉;行成于思,毁于随。☂
  • 相关阅读:
    BZOJ 3506 机械排序臂 splay
    BZOJ 2843 LCT
    BZOJ 3669 魔法森林
    BZOJ 2049 LCT
    BZOJ 3223 文艺平衡树 splay
    BZOJ 1433 假期的宿舍 二分图匹配
    BZOJ 1051 受欢迎的牛 强连通块
    BZOJ 1503 郁闷的出纳员 treap
    BZOJ 1096 ZJOI2007 仓库设计 斜率优化dp
    BZOJ 1396: 识别子串( 后缀数组 + 线段树 )
  • 原文地址:https://www.cnblogs.com/wang-biao/p/5778282.html
Copyright © 2011-2022 走看看