iOS 9:UIApplicaiton、 控制器的创建

UIApplication

  • UIApplication对象是应用程序的象征
  • 整个App中只有一个UIApplication对象,属于单例对象,不能够再次被创建。[UIApplication shareApplication]
  • 一个iOS程序启动后创建的第一个对象就是UIApplication对象
  • 一般来做一些应用级别的操作,比如:对状态栏、网络活动指示符、应用程序角标提醒、openURL

UIApplicationDelegate

还有很多其它类似的情况会导致app受到干扰,在app受到干扰时,会产生一些系统事件,这时UIApplication会通知它的delegate对象,让delegate代理来处理这些系统事件
  • 可处理的事情包括:程序的启动与终止、程序进入前台\后台、内存警告 等等
  • Hardware -> simulate memory warning,可以模拟模拟器的内存警告

程序的启动原理

  • main函数是程序的启动入口
  • UIApplicationMain做4件事情
    • 1.创建UIApplication
    • 2.设置AppDelegate对象为其代理
    • 3.开启主运行循环,不断的监听事件
    • 4.读取Info.plist,加载main.storyboard

UIWindow

  • 父类是UIView
  • 一个iOS程序之所以能显示在屏幕上,完全是因为它有UIWindow
  • main.storyboard加载之后做的3件事情:
    • 1.创建窗口
    • 2.创建控制器,并将initial指定的控制器作为窗口的根控制器rootViewController
    • 3.显示窗口
  • application 有一个keyWindow主窗口、windows窗口数组
  • 键盘 is 窗口,UIAlertView not 窗口、状态栏 is 窗口
  • windows维护着一个窗口的层级关系,并可以设置窗口的层级UIWindowsLevel

控制器的创建

  • 通过storyboard创建

    • 1.创建窗口
    • 2.创建storyboard 对象
    • 3.通过storyboard 对象创建viewController
    • 4.将窗口的根控制器设置为 viewController
    • 5.显示窗口makeKeyAndVisible


      图片 1.png
  • 程序生成之后的文件ViewController类是UIViewController的子类

  • 控制器view的创建

图片 2.png

多控制器管理

  • 1个控制器管理着多个控制器,即父子兄弟控制器
  • 2个特殊的控制器:UINavigateController、UITabBarController
  • 导航控制器也需要一个根控制器rootViewController,并具有当前显示的控制器topViewController
  • pushViewController 方法是成为导航控制器的子控制器,并显示出来。
  • 导航控制器维护一个子控制器数组,以栈的形式可以push、pop
  • 几个属性与方法
图片 3.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容