美文网首页
多控制器-1

多控制器-1

作者: CoderZXS | 来源:发表于2017-02-12 18:16 被阅读0次

    笔记

    01-项目中常见的文件-LaunchScreen-.jpg 02-项目中常见的文件-info.plist-.jpg 04-UIApplication单例.jpg 笔记.jpg

    Xmind

    Snip20170212_171.png Snip20170212_172.png Snip20170212_173.png Snip20170212_174.png Snip20170212_175.png Snip20170212_176.png Snip20170212_177.png Snip20170212_178.png Snip20170212_179.png Snip20170212_180.png Snip20170212_181.png Snip20170212_182.png Snip20170212_183.png

    PPT

    1-状态栏

    • 从iOS7开始,系统提供了2种管理状态栏的方式
    • 通过UIViewController管理(每一个UIViewController都可以拥有自己不同的状态栏)
    • 通过UIApplication管理(一个应用程序的状态栏都由它统一管理)
    • 在iOS7中,默认情况下,状态栏都是由UIViewController管理的,UIViewController实现下列方法就可以轻松管理状态栏的可见性和样式
    • 状态栏的样式
      -(UIStatusBarStyle)preferredStatusBarStyle;
    • 状态栏的可见性
      -(BOOL)prefersStatusBarHidden;
      利用UIApplication来管理状态栏
    • 利用UIApplication来管理状态栏
      • 如果想利用UIApplication来管理状态栏,首先得修改Info.plist的设置


        图片 1.png

    2-iOS程序启动过程

    Snip20170212_168.png

    UIApplicationMain

    • main函数中执行了一个UIApplicationMain这个函数
    • int UIApplicationMain(int argc, char *argv[], NSString *principalClassName, NSString *delegateClassName);
      argc、argv:直接传递给UIApplicationMain进行相关处理即可
    • principalClassName:指定应用程序类名(app的象征),该类必须是UIApplication(或子类)。如果为nil,则用UIApplication类作为默认值
    • delegateClassName:指定应用程序的代理类,该类必须遵守UIApplicationDelegate协议
    • UIApplicationMain函数会根据principalClassName创建UIApplication对象,根据delegateClassName创建一个delegate对象,并将该delegate对象赋值给UIApplication对象中的delegate属性
    • 接着会建立应用程序的Main Runloop(事件循环),进行事件的处理(首先会在程序完毕后调用delegate对象的application:didFinishLaunchingWithOptions:方法)
    • 程序正常退出时UIApplicationMain函数才返回

    3-UIWindow

    • 一个iOS程序之所以能显示到屏幕上,完全是因为它有UIWindow也就说,没有UIWindow,就看不见任何UI界面
    • 添加UIView到UIWindow中两种常见方式:
    • -(void)addSubview:(UIView *)view;
      直接将view添加到UIWindow中,但并不会理会view对应的UIViewController
    • @property(nonatomic,retain) UIViewController *rootViewController;
      自动将rootViewController的view添加到UIWindow中,负责管理rootViewController的生命周期
    • 常用方法
    • -(void)makeKeyWindow;
      让当前UIWindow变成keyWindow(主窗口)
    • -(void)makeKeyAndVisible;
      让当前UIWindow变成keyWindow,并显示出来

    UIWindow的获得

    • [UIApplication sharedApplication].windows
      • 在本应用中打开的UIWindow列表,这样就可以接触应用中的任何一个UIView对象
        (平时输入文字弹出的键盘,就处在一个新的UIWindow中)
    • [UIApplication sharedApplication].keyWindow
      • 用来接收键盘以及非触摸类的消息事件的UIWindow,而且程序中每个时刻只能有一个UIWindow是keyWindow。如果某个UIWindow内部的文本框不能输入文字,可能是因为这个UIWindow不是keyWindow
    • view.window
      • 获得某个UIView所在的UIWindow

    4-关系图

    Snip20170212_170.png

    相关文章

      网友评论

          本文标题:多控制器-1

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