在iOS中,不同的视图控制器负责不同的功能,采用不同的风格向用户呈现信息。下面对各个视图控制器做个总结:

1,标准视图控制器 - View Controller
这个控制器只是用来呈现内容。通常会用来作为子类,以向屏幕中添加逻辑。
2,导航控制器 - Navigation Controller
这个控制器呈现一个视图控制器的栈,应用程序可以在上面推入更多的视图控制器。
当新视图推入栈,或旧视图弹出栈时,导航控制器会以动画的形式(比如卷动)显示隐藏这些视图。
使用样例:系统“设置”应用程序
3,表格视图控制器 - Table View Controller
这个视图控制器给出了一个单元列表,其中的单元格可以分别配置、设定格式、排序和分组。
表格视图控制器可用于显示一组项目,经常与导航控制器结合使用,列出可供用户使用的视图。
使用样例:系统“设置”,“电话”应用程序
4,选项卡栏控制器 - Tab Bar Controller
这个用来呈现一组视图控制器,可以通过底部的一个选项卡栏进行选择。当用户点击选项卡栏上的按钮时,选项卡栏控制器会隐藏当前显示的视图控制器,并显示另一个。
使用样例:系统“App Store”应用程序
5,分割视图控制器 - Split View Controller
这个可以并排显示父子视图结构,可以在父视图中查看一个概览,在子视图中查看详细信息。
在iOS8之前,只有iPad上提供分割视图控制器。自iOS8起,使用分割视图控制器,系统会自动决定控制器的外观。可能会并排显示视图、在查看子视图时隐藏父视图,或将父视图作为覆盖层显示。
使用样例:iPad上的“设置”应用程序
6,页面控制器 - Page View Controller
这个控制器在一个“翻页”界面中呈现视图控制器。像一本书一样,书里的每一“页”都是一个视图控制器,用户可以在屏幕上拖动手指来翻页。适用于创建书籍或杂志风格的应用程序。
使用样例:iPhone或iPad上的“iBooks”应用程序
7,GLKit控制器 - GLKit View Controller
这个控制器允许使用OpenGL向用户呈现3D图像。是一个非常专用化的视图控制器。
8,集合视图控制器 - Collection View Controller
这个视图控制器呈现一种可定制、可配置的视图网格,其呈现方式类似于表格视图控制器,但其中是更为灵活的项目,而不再是单独的单元格。
使用样例:iPhone上的“照片”应用程序
9,AVKit播放器视图控制器 - AVKit Player View Controller
这个控制器显示一个全屏视频播放器,是为了播放视频内容设计的。
(注意:在iOS上,视图控制器可以包含其他视图控制器。比如导航控制器就是一个视图控制器,用来管理屏幕顶端导航栏的外观,以及一个或多个其他视图控制器。)

原文出自:www.hangge.com  转载请保留原文链接:http://www.hangge.com/blog/cache/detail_839.html

Swift - iOS中各种视图控制器(View Controller)的介绍的更多相关文章

  1. iOS开发之视图控制器(UIViewController)

    视图控制器应该在MVC设计模式中扮演控制层(C)的角色,UIViewController的职责对内管理与之关联的View,对外跟其他UIViewController通信和协调.一个视图控制器管理一个视 ...

  2. 浅谈iOS中的视图优化

    引言: 让我们来思考几个问题,你开发过的产品,它还有可以优化的地方吗?能增加它的帧率吗?能减少多余的CPU计算吗?是不是存在多余的GPU渲染?业务这点工作量对于越来越强大的设备面前显得微不足道,但作为 ...

  3. Django笔记&教程 2-3 视图(view)函数介绍

    Django 自学笔记兼学习教程第2章第3节--视图(view)函数介绍 点击查看教程总目录 参考文献:https://docs.djangoproject.com/en/2.2/topics/htt ...

  4. iOS学习之视图控制器

    一.自定义视图(label-textField组合视图)      1.自定义视图:系统标准UI之外,自己组合出的新的视图.      2.优点:iOS提供了很多UI组件,借助它们我们可以实现不同的功 ...

  5. iOS:iOS中的多控制器管理

    iOS中的控制器有三种创建方式: 1.通过storyboard创建 UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@" ...

  6. iOS之深入了解控制器View的加载

    前言 在面试中,面试官可能会问这样的问题,loadView有什么作用,它与viewDidLoad有何区别 首先我们得知道,控制器view是通过懒加载的方式进行加载的,即用到的时候再加载. loadVi ...

  7. iOS 中的视图函数 init initwithnib viewDidLoad viewWillAppear的总结

    我要总结的函数主要是这几个: UIView *view-如果view还没有被初始化的话,getter方法会先调用[self loadView],如果getter或者setter方法被重写了,子类中的g ...

  8. 获取Storyboard中的视图控制器

    storyboard对于框架的构建是一个非常方便的工具,我们经常需要在storyboard中获取我们指定的视图控制器,那么要怎么获取呢? 方法如下: 第一步:选中视图,为视图自定义一个Storyboa ...

  9. iOS:UIPageViewController翻页控制器控件详细介绍

    翻页控制器控件:UIPageViewController 介绍: 1.它是为我们提供了一种类似翻书效果的一种控件.我们可以通过使用UIPageViewController控件,来完成类似图书一样的翻页 ...

随机推荐

  1. The Power of Reading——英语学习小技巧之七

    This method is "The Power of Reading" and it comes from an article by Dr.Stephen Krashen. ...

  2. 使用yum来下载RPM包而不进行安装

    1. 安装yum-downloadonly. yum-utils 或 yum-plugin-downloadonly 软件包 (RHEL5) # yum install yum-downloadonl ...

  3. Microsoft Jet 数据库引擎找不到对象'Sheet1$_'。请确定对象是否存在,并正确地写出它的名称和路径

    We have a CRM add-on for Importing Price Lists into CRM. For this tool, we expect the details to be ...

  4. The reference to entity "characterEncoding" must end with the ';' delimiter

    数据源配置时加上编码转换格式后出问题了: The reference to entity "characterEncoding" must end with the ';' del ...

  5. 三个C++资源链接(大量)

    https://github.com/fffaraz/awesome-cpp http://blog.jobbole.com/78901/ https://github.com/programthin ...

  6. Android中如何判断是否联网

    首先在AndroidManifest.xml中添加与连接网络相关的权限: [xhtml]  view plain copy   <uses-permission android:name=&qu ...

  7. for(;;)和 while(1) 有什么区别吗?for()和while()的使用情景。

    1 for(;;)和 while(1) 有什么区别吗? void main(void) { ; // for(;;) ) { a++; } } arm-linux-gcc -c -o for.o fo ...

  8. BZOJ 1270: [BeijingWc2008]雷涛的小猫( dp )

    简单的dp.. dp(i,j) = max(dp(x,y))+cnt[i][j], (x,y)->(i,j)是合法路径. 设f(i)= max(dp(x,y))(1≤x≤N, 1≤y≤i), g ...

  9. QuartusII 中采用门级原语

    QuartusII  中采用门级原语 默认的是前面第一个 为output  后面所有信号为输入 图中的工程实现的是 一个二选一多路选择器

  10. 那些年搞不懂的"协变"和"逆变"

    博主之前也不是很清楚协变与逆变,今天在书上看到了有关于协变还是逆变的介绍感觉还是不太懂,后来看了一篇园子里面一位朋友的文章,顿时茅塞顿开.本文里面会有自己的一些见解也会引用博友的一些正文,希望通过本篇 ...