《iOS 8开发指南》——第6章,第6.2节Xcode中的MVC

6.2 Xcode中的MVC
iOS 8开发指南
在用Xcode编程并在Interface Builder中安排用户界面(UI)元素后,Cocoa Touch的结构旨在利用MVC(Model-View-Controller,模型—视图—控制器)设计模式。在本节的内容中,将讲解Xcode中MVC模式的基本知识。

6.2.1 原理
MVC模式会将Xcode项目分为如下3个不同的模块。

1.模型
模型是应用程序的数据,比如项目中的数据模型对象类。模型还包括采用的数据库架构,比如Core Data或者直接使用SQLite文件。

2.视图
顾名思义,视图是用户看到的应用程序的可视界面。它包含在Interface Builder中构建的各种UI组件。

3.控制器
控制器是将模型和视图元素连接在一起的逻辑单元,处理用户输入和UI交互。UIKit组件的子类,比如UINavigationController和UITabBarController是最先会被想到的,但是这一概念还扩展到了应用程序委托和NSObject的自定义子类。

虽然在Xcode项目中,上述3个MVC元素之间会有大量交互,但是创建的代码和对象应该简单地定义为仅属于三者之一。当然,完全在代码内生成UI或者将所有数据模型方法存储在控制器类中非常简单,但是如果你的源代码没有良好的结构,会使模型、视图和控制器之间的分界线变得非常模糊。

另外,这些模式的分离还有一个很大的好处是可重用性!在iPad出现之前,应用程序的结构可能不是很重要,特别是不打算在其他项目中重用任何代码的时候。过去我们只为一个规格的设备(iPhone 320×480的小屏幕)开发应用程序。但是现在需要将应用程序移植到iPad上,利用平板电脑的新特性和更大的屏幕尺寸。如果iPhone应用程序不遵循MVC设计模式,那么将Xcode项目移植到iPad上会立刻成为一项艰巨的任务,需要重新编写很多代码才能生成一个iPad增强版。

例如,假设根视图控制器类包含所有代码,这些代码不仅用于通过Core Data获取数据库记录,还会动态生成UINavigationController以及一个嵌套的UITableView用于显示这些记录。这些代码在iPhone上可能会良好运行,但是迁移到iPad上后可能想用UISplitViewController来显示这些数据库记录。但是此时需要手动去除所有UINavigationController代码,这样才能添加新的UISplitViewController功能。但是如果将数据类(模型)与界面元素(视图)和控制器对象(控制器)分开,那么将项目移植到iPad的过程会非常轻松。

6.2.2 模板就是给予MVC的
Xcode提供了若干模板,这样可以在应用程序中实现MVC架构。

1.view-based application(基于视图的应用程序)
如果应用程序仅使用一个视图,建议使用这个模板。一个简单的视图控制器会管理应用程序的主视图,而界面设置则使用一个Interface Builder模板来定义。特别是那些未使用任何导航功能的简单应用程序应该使用这个模板。如果应用程序需要在多个视图之间切换,建议考虑使用基于导航的模板。

2.navigation-based application(基于导航的应用程序)
基于导航的模板用在需要多个视图之间进行间切换的应用程序。如果可以预见在应用程序中,会有某些画面上带有一个“回退”按钮,此时就应该使用这个模板。导航控制器会完成所有关于建立导航按钮以及在视图“栈”之间切换的内部工作。这个模板提供了一个基本的导航控制器以及一个用来显示信息的根视图(基础层)控制器。

3.utility application(工具应用程序)
适合于微件(Widget)类型的应用程序,这种应用程序有一个主视图,并且可以将其“翻”过来,例如iPhone中的天气预报和股票程序等就是这类程序。这个模板还包括一个信息按钮,可以将视图翻转过来显示应用程序的反面,这部分常常用来对设置或者显示的信息进行修改。

4.OpenGL ES application(OpenGL ES应用程序)
在创建3D游戏或者图形时可以使用这个模板,它会创建一个配置好的视图,专门用来显示GL场景,并提供了一个例子计时器可以令其演示动画。

5.tab bar application(标签栏应用程序)
提供了一种特殊的控制器,会沿着屏幕底部显示一个按钮栏。这个模板适用于像iPod或者电话这样的应用程序,它们都会在底部显示一行标签,提供一系列的快捷方式,来使用应用程序的核心功能。

6.window-based application(基于窗口的应用程序)
提供了一个简单的、带有一个窗口的应用程序。这是一个应用程序所需的最小框架,可以用它作为开始来编写自己的程序。

时间: 2025-01-02 02:24:58

《iOS 8开发指南》——第6章,第6.2节Xcode中的MVC的相关文章

《iOS 8开发指南(第2版)》——第6章,第6.2节Xcode中的MVC

6.2 Xcode中的MVC iOS 8开发指南(第2版) 在用Xcode编程并在Interface Builder中安排用户界面(UI)元素后,Cocoa Touch的结构旨在利用MVC(Model-View-Controller,模型-视图-控制器)设计模式.在本节的内容中,将讲解Xcode中MVC模式的基本知识. 6.2.1 原理 MVC模式会将Xcode项目分为如下3个不同的模块. 1.模型 模型是应用程序的数据,比如项目中的数据模型对象类.模型还包括采用的数据库架构,如Core Dat

《iOS应用开发指南——使用HTML5、CSS3和JavaScript》——1.5节设计始于思考,终于代码

1.5 设计始于思考,终于代码 iOS应用开发指南--使用HTML5.CSS3和JavaScript "但是等等."你思考着,"我认为所有的应用程序都应该使用Objective-C语言编写?" 是的.然而,这并不意味着你需要自己编写Objective-C代码! 事实上,如果别人已经为你写好了呢? 考虑一下设计显示在Web浏览器的内容的JavaScript框架.例如我最喜欢的jQuery和Yahoo!的用户界面(YUI),协助设计师使用强大的JavaScript行为,

《iOS应用开发指南——使用HTML5、CSS3和JavaScript》——2.2节下载和安装iOS SDK

2.2 下载和安装iOS SDK iOS应用开发指南--使用HTML5.CSS3和JavaScript 好在这一过程的其余部分很快速和容易.嗯,主要是容易.不过,呃,也没有那么快,那得要看情况. 问题在于,iOS SDK是我到目前为止下载到电脑里的最大的一个软件.曾经,我在应用程序设计讲习班中用尽各种方法来警告学员下载超过2GB的东西.我的意思是,在它下载的过程中你会感觉自己变老了.所以,如果你在家里使用电缆或者更慢的网络下载它,那么开始下载后,带上你的狗狗去散一个足够长时间的步吧.但是千万不要

《iOS应用开发指南——使用HTML5、CSS3和JavaScript》——1.6节小结

1.6 小结iOS应用开发指南--使用HTML5.CSS3和JavaScript下面是我们本章学到的知识. 别让iPhone的名字欺骗了你.事实上它是一个拥有电话应用程序的便携式电脑.这意味这它可以做一些神奇的事情,而我们的设计可以让这些事情成真.整个iOS生态系统对于Apple公司来说是一个战略转型,它将关注生活方式,无所不在的信息,以及内容服务.这为从事数字内容设计的人们提供了巨大的机会.使用iOS是引人入胜的事情,并且更能融入我们的休闲生活中,而不仅仅是工作中.如何设计我们的应用程序才能更

《iOS应用开发指南——使用HTML5、CSS3和JavaScript》——2.4节小结

2.4 小结iOS应用开发指南--使用HTML5.CSS3和JavaScript本章你学会的知识有以下这些. 一个新的设计项目或者流程的每个步骤都有重要意义,包括获取和设置你的工具!因此,需要仔细考虑.获得一个唯一的苹果公司开发者ID,以便你保持iTunes购买ID与以开发人员的身份使用iTunes和iTunes Connect完全隔离开.仔细阅读苹果公司开发协议,并确保你对它的规定已经足够熟悉了.像任何协议一样,它创造了机会,同时也定义约束.下载和安装iOS SDK,给你提供了基本的应用程序-

《iOS应用开发指南——使用HTML5、CSS3和JavaScript》——2.1节取得苹果公司开发者ID

2.1 取得苹果公司开发者IDiOS应用开发指南--使用HTML5.CSS3和JavaScript为了安装Xcode,需要下载iOS SDK(以前叫做iPhone SDK,2010年7月改名了).但是在寻找SDK之前,需要先取得一个苹果公司开发者ID. 苹果公司开发者ID是应用程序设计.审查.发布.升级.以及(如果你在销售你的应用程序)报酬支付整个流程的联机标识.而且,我怀疑苹果公司想要你最终参与这个过程,所以他们要求你甚至在下载iOS SDK之前就需要注册苹果公司开发者ID.但是不必担心:下载

《iOS应用开发指南——使用HTML5、CSS3和JavaScript》——1.1节移动魔力和掌上电脑

1.1 移动魔力和掌上电脑iOS应用开发指南--使用HTML5.CSS3和JavaScript由于iPhone和其他智能手机已经无处不在,对精心设计的移动内容的需求也急剧增加.我们知道一些令人震惊的数字: 到2010年年中销售了超过8500万台iOS设备.iTunes 应用程序商店有超过 250000 个应用程序.从iTunes下载软件的数量超过150亿.我个人体验到这种变革的影响,差不多任何地方都有可用的内容,无论是否需要:在购物时.工作时.跑步时,甚至在滑雪场坐着缆车时.除非我在海滩上或在水

《iOS应用开发指南——使用HTML5、CSS3和JavaScript》——2.3节下载和安装NimbleKit

2.3 下载和安装NimbleKitiOS应用开发指南--使用HTML5.CSS3和JavaScript最后一步是无比轻松并且无需详细阐述,读到这里你是不是很高兴?我敢打赌你肯定是! 1.下载NimbleKit(图2.5),请访问: http://www.nimblekit.com/ 图2.5 NimbleKit网站 2.点击下载NimbleKit链接.这一次,你就会有一个小得多的文件 nimblekit.dmg,它会保存到你的下载目录. 3.打开文件,按照提示和指示,安装NimbleKit框架

《iOS应用开发指南——使用HTML5、CSS3和JavaScript》——1.4节法宝就是转变

1.4 法宝就是转变iOS应用开发指南--使用HTML5.CSS3和JavaScript所以这里有iOS设备另一个关键的不同点:我们的原生应用程序的内容传递形式,这是我们需要设计的重点. 如果你不确信的话,对比一下其他硬件的屏幕表面区域的尺寸. iPhone.iPod touch和iPad有一个方面非常相似:它们几乎只剩下屏幕.从正面观察,3种设备大约95%的区域是屏幕,而笔记本电脑的屏幕占的比例比50%还少一点点(图1.3).这是重要的区别.即使笔记本电脑的屏幕上显示了一个迷人的网页,很显然它