zoukankan      html  css  js  c++  java
  • 控制器View是怎样创建的?

    对于非常多程序猿来说控制器和View的关系肯定有点模糊,对于View的创建肯定有一种说不清道不明的感觉。view仅仅是控制器的一个属性。控制器中有很多对view处理的方法。也就是说得控制器管理view的业务。


    通常有三种方式通过控制器来产生view:
    <1>. 纯代码
    <2>.通过storyboard方式载入控制器中的view
    <3>.通过xib方式载入控制器中的view
    通过下图通过YBViewContoller控制器view的产生能够明了的了解view的产生方式:
    这里写图片描写叙述
    在这里我们应该明了不管xib或者storyboard创建控制器,我们必须对此绑定一个类(在这里以绑定YBViewContoller控制器为例简要说明 )
    不管控制器是怎样创建的。控制器肯定属于一个类(在这里YBViewContoller控制器)。类里面的loadView就能推断view以哪种方式载入view
    首先将三种创建控制器的方法代码写出来:

        // 1.纯代码
        YBViewController *viewCtr = [[YBViewController alloc] init];
        // 2.storyboard
        UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"YBViewController" bundle:nil];
        YBViewController *storyCtr = [storyboard instantiateInitialViewController];
        // 3.xib
        YBViewController *xibCtr = [[YBViewController alloc] initWithNibName:@"YBViewController" bundle:nil];
        self.window.rootViewController = xibCtr;

    我们就细致梳理一番,通过三种方式仅仅是创建YBViewController控制器。怎样载入出view。就是loadView方法的事情了。假设在这个类中重写的 loadView方法自己定义View的话。这个控制器载入的view就是自定的view。与载入控制器的方法无关,假设没有重写loadView的方法是怎样载入控制器的view?在控制器中有两个属性:
    @property(nullable, nonatomic, readonly, copy) NSString *nibName; @property(nullable, nonatomic, readonly, strong) UIStoryboard *storyboard
    当我们想用storyboard载入控制器时,传入storyboard的名字赋值给UIStoryboard属性。载入view时就会载入这个storyboard中控制器的view,同理通过xib载入时的道理也是一样的。

  • 相关阅读:
    《Python 源码阅读》之 类型Type
    《Python 源码剖析》之对象
    KMP匹配算法
    Python的递归深度
    js验证手机号
    Jquery 实现 “下次自动登录” 记住用户名密码功能
    js注册读秒进度条
    div+css进度条
    SprignMVC+myBatis整合
    ssm控制输出sql(二)
  • 原文地址:https://www.cnblogs.com/yxysuanfa/p/7239241.html
Copyright © 2011-2022 走看看