UIApplication 和 UIWindow

Info.Plist文件

    该文件对工程做一些运行期的配置,非常重要,不能删除。

常见属性

Pch文件

    项目的Suportting files文件夹下面有一个“工程名-Prefix.pch”文件,也是一个头文件

    Pch文件中的内容可以被项目中的其他所有源文件共享和访问

    一般在pch文件中定义一些全局的宏

    在pch文件中添加下列预处理指令,然后在项目中使用log(...)来输出日志信息,就可以在发布应用的时候,一次行将NSLog语句移除(在调试模式下,才有定义DEBUG)

    

UIApplication

    UIApplication对象是应用程序的象征

    每一个应用都有自己的UIApplication对象,而且都是单例的

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

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

    利用UIApplication对象,可以处理一些应用级别的操作

UIApplication的常见属性

状态栏

    从iOS7开始,有两种控制状态栏的方式

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

        2.同过UIApplication管理(一个应用的状态栏统一被他管理)

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

    

    

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

     

    UIApplication有一个十分强大的功能 (openURL:)方法

    

    

UIApplication和delegate

    所有的移动操作系统都有一个致命的缺点,app很容易受到干扰。比如来一个电话或者锁屏都会导致app进入后台被终止

    在app受到干扰的时候,会产生一些系统事件,这是UIApplication会通知它的delegate对象,让delegate代理来处理这些系统事件

    

    

      每次新建完一个项目,都有一个AppDelegate字眼的类,他就是UIAppliaction对象的代理,他默认遵守<UIApplicationDelegate>协议

iOS程序的启动过程

      

UIApplicationMain

      Main函数中执行了一个UIApplicationMain这个函数

      

      UIApplicationMain函数会根据principalClassName创建UIApplication对象,根据DelegateDelegateClassName创建一个delegate对象,并将改delegate对象赋值给UIApplication对象中的delegate属性

      接着会建立应用程序的Main Runloop(事件循环),进行事件的处理(首先会在程序完毕后调用delegate对象的application:didFinishLaunchingWithOptions:方法)

      程序正常退出时UIApplicationMain函数才返回

UIWindow

      UIWindow是一种特殊的UIView,通常在一个app中一般都会有一个UIWindow

      iOS程序启动完毕后,创建的第一个视图空间就是UIWindow,接着创建控制器的View,最后将控制器的View添加到UIWindow上,于是控制器的View就显示在屏幕上了

      iOS程序之所以可以显示在屏幕上,完全是因为它有UIWindow

      如有没有UIWindow,我们看不见任何界面

      

UIWindow的获得

时间: 2024-10-12 19:57:59

UIApplication 和 UIWindow的相关文章

Info.plist和pch文件的作用,UIApplication,iOS程序的启动过程,AppDelegate 方法解释,UIWindow,生命周期方法

转自:http://blog.csdn.net/dwt1220/article/details/29373817 Info.plist常见的设置 建立一个工程后,会在Supporting files文件夹下看到一个“工程名-Info.plist”的文件,该文件对工程做一些运行期的配置,非常重要,不能删除  注:在旧版本Xcode创建的工程中,这个配置文件的名字就叫“Info.plist”  项目中其他Plist文件不能带有“Info”这个字眼,不然会被错认为是传说中非常重要的“Info.plis

UIApplication 的学习

1.0 URL 的组成 == 协议头://主机名/路径   从iOS7 开始,系统提供了两种管理状态栏的方式,默认交给控制器去管理 2.0 旋转事件----> UIApplication --->UIWindow ---> RootViewController 3.0  a. Main函数   b.UIApplicationMain 创建UIApplication对象 创建UIApplication的delegate 对象  c.delegate对象开始处理(监听)系统事件

iOS学习笔记(2)— UIView用户事件响应

iOS学习笔记(2)— UIView用户事件响应 UIView除了负责展示内容给用户外还负责响应用户事件.本章主要介绍UIView用户交互相关的属性和方法. 1.交互相关的属性 userInteractionEnabled 默认是YES ,如果设置为NO则不响应用户事件,并且把当前控件从事件队列中删除.也就是说设置了userInterfaceEnabled属性的视图会打断响应者链导致该view的subview都无法响应事件. multipleTouchEnabled  默认是NO,如果设置为YE

事件处理以及响应者链条

在ios中,事件UIEvent类来表示,当一个事件发生时,系统会搜集的相关事件信息,创建一个UIEvent对象,最后将该事件转发给应用程序对象(UIApplication).日常生活中,主要有三种类型的事件:触摸事件,加速计事件以及远程遥控事件.下面是官方的一张图片: 当用户通过以上方式触发一个事件时,会将相应的事件对象添加到UIApplication的事件队列中.UIApplication会循环的从队列中拿出第一个事件来处理.首先将该事件分发给UIApplication 的主窗口对象(KeyW

史上最详细的iOS之事件的传递和响应机制

前言: 按照时间顺序,事件的生命周期是这样的: 事件的产生和传递(事件如何从父控件传递到子控件并寻找到最合适的view.寻找最合适的view的底层实现.拦截事件的处理)->找到最合适的view后事件的处理(touches方法的重写,也就是事件的响应) 其中重点和难点是: 1.如何寻找最合适的view 2.寻找最合适的view的底层实现(hitTest:withEvent:底层实现) (一)iOS中的事件 iOS中的事件可以分为3大类型: 触摸事件 加速计事件 远程控制事件这里我们只讨论iOS中的

iOS - Responder Chain

 在iOS中,当发生事件响应时,必须知道由谁来响应事件.这就是由响应者链来对事件进行响应,所有事件响应的类都是UIResponder的子类,响应者链是一个由不同对象组成的层次结构,其中的每个对象将依次获得响应事件消息的机会.当发生事件时,事件首先被发送给第一响应者,第一响应者往往是事件发生的视图,也就是用户触摸屏幕的地方.事件将沿着响应者链一直向下传递,直到被接受并作出处理. 一般来说,第一响应者是个视图对象或者其子类对象,当其被触摸后事件交由他处理,如果他不处理,事件就会被传递给它的视图控制器

ios中的事件处理、响应者链条以及第一响应者

在ios中,事件UIEvent类来表示,当一个事件发生时,系统会搜集的相关事件信息,创建一个UIEvent对象,最后将该事件转发给应用程序对象(UIApplication).日常生活中,主要有三种类型的事件:触摸事件,加速计事件以及远程遥控事件.下面是官方的一张图片: 当用户通过以上方式触发一个事件时,会将相应的事件对象添加到UIApplication的事件队列中.UIApplication会循环的从队列中拿出第一个事件来处理.首先将该事件分发给UIApplication 的主窗口对象(KeyW

iOS学习4_控制器的创建方式和控制器view的创建

UIScreen是与设备有关的物理屏幕 Window是一个窗口对应UIWindow类,继承自UIView,window要显示在Screen上必须设置为主窗口并且可见.接下来就可以往UIWindow上面添加一些控件了. 下图就是简单地层次关系 ViewController是用来组织和控制视图的,与上图不同的是这里使用了视图控制器ViewController,不需要直接将view指定给window,相反,只需要给window制定一个视图控制器,视图控制器会自动的将他的view添加给window.如下

关于oc运行时 isa指针详解

Cocoa框架是iOS应用程序的基础,了解Cocoa框架,对开发iOS应用有很大的帮助. 1.Cocoa是什么? Cocoa是OS X和 iOS操作系统的程序的运行环境. 是什么因素使一个程序成为Cocoa程序呢?不是编程语言,因为在Cocoa开发中你可以使用各种语言:也不是开发工具,你可以在命令行上就可以创建Cocoa程序.Cocoa程序可以这么说,它是由一些对象组成,而这些对象的类最后都是继承于它们的根类 :NSObject.而且它们都是基于Objective-C运行环境的. 1.1.Coc