之前看过关老师的视频之后就有写关于视图切换的程序,不过那是很久之前了,那时候也不知道什么是View,什么是VIewController,就知道照着写。这次项目的时候,我又碰到了这个问题,我自以为比较能够掌握其中的精髓了,看了一遍关老师的视频讲解之后就开始自己做视图的切换。。。一塌糊涂,根本不能正常运行,完全弄不懂View和ViewController的关系,不能够正常使用了。所以各种搜索去弄个清楚。

View

VIew就是某个对象的视图,代表了这个对象的图形界面。
所有能够显示的控件都有View的属性,比如UIButton,UISlider,UIImageView
只不过某些控件的View是可见的属性,某些控件的View是不可见的属性。
只要把想要显示的控件的View添加到当前正在显示的View上,就可以完成控件的显示了。
常用代码如下:

    //self.view如果是当前正在显示的View的话,这句话就能够把recodeButton显示到屏幕上

    [self.viewaddSubview:recodeButton];

    //insertSubview能够把子视图插入到某个固定的层上

];

ViewController

跟字面意思一样ViewController就是View的控制器。
刚才所说的View添加子视图的方法就能完成对控件的显示,但是这段代码应该在哪里写呢,VC就是这样一个控制这些控件是否显示,怎么显示的地方。
每个VC都有一个View属性,这个View就是这个VC里面所有控件的视图的存放的地方,显示VC的View就显示了所有的这个VC里面的控件的视图。

我是这么理解的,我把程序分为几个独立的显示区。拿游戏做比方:比如开始界面为一个显示区,游戏登录界面为一个显示区,游戏界面为一个显示区。
我会把这些显示区分开管理,每个显示区一个VC。在某个显示区的VC里面就有这个显示区的所有控件,包括这些控件的创建,使用,还有显示这些控件的操作。所有的控件的View都添加到VC的View属性里面。
每个显示区的视图就是每个对应VC的View属性,如果要显示某个显示区,显示这个显示区的VC的View就可以了,

关于View和VIewController的关系和理解的更多相关文章

  1. View和viewController的生命周期

    View和viewController的生命周期 一.ViewController的职责 对内管理与之关联的View,对外跟其他ViewController通信和协调.对于与之关联的View,View ...

  2. iOS view和viewController的生命周期

    一.ViewController的职责 对内管理与之关联的View,对外跟其他ViewController通信和协调.对于与之关联的View,ViewController总是在需要的时候才加载视图,并 ...

  3. Android 自定义 view(四)—— onMeasure 方法理解

    前言: 前面我们已经学过<Android 自定义 view(三)-- onDraw 方法理解>,那么接下我们还需要继续去理解自定义view里面的onMeasure 方法 推荐文章: htt ...

  4. Android 自定义 view(三)—— onDraw 方法理解

    前言: 上一篇已经介绍了用自己定义的属性怎么简单定义一个view<Android 自定义view(二) -- attr 使用>,那么接下来我们继续深究自定义view,下一步将要去简单理解自 ...

  5. 转:如何学习SQL(第二部分:从关系角度理解SQL)

    转自:http://blog.163.com/mig3719@126/blog/static/285720652010950825538/ 6. 从关系角度理解SQL 6.1. 关系和表 众所周知,我 ...

  6. cpu个数、核数、线程数、Java多线程关系的理解

    cpu个数.核数.线程数.Java多线程关系的理解 2017年12月08日 15:35:37 一 cpu个数.核数.线程数的关系 cpu个数:是指物理上,也及硬件上的核心数: 核数:是逻辑上的,简单理 ...

  7. 我对uml类图关系的理解

    uml类图的关系: 泛化关系也就是继承. 实现关系就是一个类实现另外一个接口. 依赖关系就是一个类使用了另外一个类,是一种使用关系,在这个类的某个服务中需要另外一个类来协助. 关联关系就是一类拥有另外 ...

  8. Activity、Window和View三者间的关系有一定的见解

    一.简述如何将Activity展现在手机上 Tips: Activity本身是没办法处理显示什么控件(view)的,是通过PhoneWindow进行显示的 换句话说:activity就是在造Phone ...

  9. [IOS初学]ios 第一篇 storyboard 与viewcontroller的关系

    学习了一下ios,把一个基本的概念搞清楚了,在android或者wp中,大家基本都是习惯与一个画面场景代表一个类,新建场景的时候自动新建了类,但在ios中使用了storyboard之后发现,在stor ...

随机推荐

  1. ORACLE如何停止一个JOB

    ORACLE如何停止一个JOB1 相关表.视图2 问题描述为同事解决一个因为网络连接情况不佳时,执行一个超长时间的SQL插入操作.既然网络状况不好,就选择了使用一次性使用JOB来完成该插入操作.在JO ...

  2. UIView的layoutSubviews和drawRect方法

    UIView的layoutSubviews和drawRect方法   首先两个方法都是异步执行.layoutSubviews方便数据计算,drawRect方便视图重绘.   layoutSubview ...

  3. html5与js关于input[type='text']文本框value改变触发事件一些属性的区别oninput,onpropertychange,onchange和文本框的value点击全选状态onclick="select();"。做购物车页面时会要用到。

    关于input[type='text']文本框value改变触发事件一些属性的区别oninput,onpropertychange,onchange和文本框的点击全选状态onclick="s ...

  4. DependencyProperty

    <Window x:Class="DependencyPropertyDemo.MainWindow" xmlns="http://schemas.microsof ...

  5. canvas 之 - 精灵 钟表动画

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  6. WinFrom ProgressBar控件的使用

    在WinForm程序中,大多数情况下我们是知道程序运行所需要的时间或步骤的,比如批量复制文件时文件的数量,数据导出或导入时数据的总行数等等.对于步骤比较确定的操作,如果程序执行过程时间较长,很容易使用 ...

  7. 读取XML文件节点数据

    xml测试文件为 <?xml version="1.0" standalone="yes"?> <NewDataSet> <xs: ...

  8. 动画特效的原生、jQ和CSS3方法

    最近一直在看运动的JS特效,主要看的是原生写法,太麻烦了,最终看到写了个运动的方法,后面可以直接引用,然后发现这个方法和jQ其实差不多了,代码分别如下: 基本的HMTL和CSS <!DOCTYP ...

  9. 【微机】验证负数以补码存储程序 C语言

    微机中验证负数以补码存储程序 一.相关基础知识 负数的补码等于它的反码加1,即在其反码的最低位加1就为该数的补码,且在计算机中负数以补码形式进行存储. .int型占4字节(32位二进制)char型占1 ...

  10. Uva_11916 Emoogle Grid

    题目链接 题意: 有个N X M的棋盘, 有K种颜色, 有B个不可涂色的位置, 共有R种涂色方案. 1)每个可涂色的位置必须涂上一种颜色 2)不可涂色位置不能涂色 3)每个位置必须从K种颜色中选出一种 ...