美文网首页
iOS开发经验(4)-UIApplication& UI

iOS开发经验(4)-UIApplication& UI

作者: Ryan___ | 来源:发表于2016-09-19 16:04 被阅读36次

    目录

    1. [[UIApplication sharedApplication]
    2. UIWindow
    1. [[UIApplication sharedApplication]
    • UIApplication对象是应用程序的象征.
      每一个应用都有自己的UIApplication对象,这个对象是系统自动帮我们创建的, 它是一个单例对象.
      一个iOS程序启动后创建的第一个对象就是UIApplication对象
      我们只能通过[UIApplication sharedApplication]获得这个单例对象,不能够手动去创建它.
    • UIApplication作用
      利用UIApplication对象,能进行一些应用级别的操作.(openURL:)
      可以设置应用程序图标右上角的红色提醒数字
      设置联网指示器的可见性
      可以设置应用程序的状态栏
      进行应用之间的跳转.
    • UIApplication Delegate
      UIApplication会在程序一启动时候创建一个遵守UIApplicationDelegate的代理.
      这个就是我们程序一创建时的AppDelegate类。AppDelegate就是遵守了UIApplicationDelegate协议。 在这个类中定义很多监听系统事件的方法.同时也定义了一些应用程序的生命周期方法.
      delegate可处理的事件包括:
      应用程序的生命周期事件(如程序启动和关闭)
      系统事件(如来电)
      内存警告
    2. UIWindow
    • UIWindow是一种特殊的UIView,通常在一个app中至少会有一个UIWindow
      iOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的view,最后将控制器的view添加到UIWindow上,于是控制器的view就显示在屏幕上了。UIWindow可以手动创建,且可以是多个。
      一个iOS程序之所以能显示到屏幕上,完全是因为它有UIWindow
      也就说,没有UIWindow,就看不见任何UI界面
    • 之前想要拿到app的窗口,我们通常的写法是:[UIApplication sharedApplication].keyWindow
      这样写是不安全的,如果应用程序没有跳转,这种写法还算是可行的,但是如果应用程序出现了跳转(分享跳转到其他APP,访问系统相册等),这时返回原APP,你会发现加载原窗口上的视图位置会发生明显偏移,查阅了一些资料,发现如果写成[[[UIApplication sharedApplication]delegate]window]就不会出现上述问题
    • 更换RootviewController

    相关文章

      网友评论

          本文标题:iOS开发经验(4)-UIApplication& UI

          本文链接:https://www.haomeiwen.com/subject/szknettx.html