之前看过关老师的视频之后就有写关于视图切换的程序,不过那是很久之前了,那时候也不知道什么是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. (七)Struts2 验证框架

    所有的学习我们必须先搭建好Struts2的环境(1.导入对应的jar包,2.web.xml,3.struts.xml) 第一节:Struts2 验证简介 Struts2 基于Struts2 拦截器,为 ...

  2. iOS截屏代码

    转载自:http://m.open-open.com/m/code/view/1420469506375 1.普通界面 /** *截图功能 */ -(void)screenShot{ UIGraphi ...

  3. 删除svn密码方法

    很多时候使用svn,我们需要切换svn账号,但是由于之前的账号已经选择了记住密码,那么我们应该如何删除svn密码来切换新的svn账号呢? 其实很简单,svn账号密码信息保存在电脑某一文件中,我们只要删 ...

  4. [Introduction to programming in Java 笔记] 1.3.8 Gambler's ruin simulation 赌徒破产模拟

    赌徒赢得机会有多大? public class Gambler { public static void main(String[] args) { // Run T experiments that ...

  5. Codeforces 549B Looksery Party

    Looksery Party Solution: 仔细分析一下会发现每个人都会发一条消息给自己这个条件非常重要! 这个条件保证了一定会有解,而且解法也要从这里入手. 当我们拿到一个猜测的答案序列的时候 ...

  6. jQuery入门[3]-事件

    jQuery对事件的支持主要包括: bind()--为事件绑定处理程序,如: $("p").bind("mouseenter mouseleave", func ...

  7. 1.1机器学习基础-python深度机器学习

    参考彭亮老师的视频教程:转载请注明出处及彭亮老师原创 视频教程: http://pan.baidu.com/s/1kVNe5EJ 1. 课程介绍 2. 机器学习 (Machine Learning, ...

  8. Administration Commands

    Commands useful for administrators of a hadoop cluster. balancer Runs a cluster balancing utility. A ...

  9. 既然HTTP1.1协议里每个连接默认都是持久连接,那么为何当今所有报文都在使用Connetion:Keep-Alive

    说白了,如果你发起时有,那么服务器支持,回应时也会有,不支持,也就没有了.所以一般客户端都会默认带着发,服务端返回不返回就是服务端的事了. 1. 支不支持长连接,关键在于服务端是否支持. 如果服务端不 ...

  10. Hadoop 2.6.0编译on mac

    花了一个晚上的时间弄了下hadoop的编译环境,碰到些错误,这里保存下. 需要编译Hadoop,不但需要安装Maven,还需要安装protobuf 安装Maven 下载:apache-maven-3. ...