• 控制器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载入时的道理也是一样的。

  • 相关阅读:
    win11系统无法解决的死结
    python多线程2线程应用
    python多线程3线程同步
    python多线程3.1同步测试例子
    python多线程1线程创建
    最近总是淡淡的····
    ASP.NET MVC 中如何实现基于角色的权限控制
    【转】Visual C++ ADO数据库编程入门
    【转】Windows窗体消息汇总
    【转】数据库设计中的14个技巧
  • 原文地址:https://www.cnblogs.com/yxysuanfa/p/7239241.html
Copyright © 2020-2023  润新知