要实现的功能:

对窗体上一个复选框,标签修改,按钮事件进行演示

Xcode新建一个项目

File  ->  Creat Project  ->  Cocoa Application  ->  MyProject(项目名)

创建一个底层实现类(模型Model)

Xcode 项目中选中Classes 文件夹

File  ->  New File  ->  baseClass(文件名)  ->  选中Also create "baseClass.h"

创建一个中间控制类(中间层Controller)

双击  MainMenu.xib(Resources目录下) 文件来启动 Interface Builder

从Tools  ->  Library 中把Object 拉到 XIB 项目中

选中Object ,从菜单中 Tools  ->  identity Inspector

Class identity 栏中Class 命名:controlClass

Class Outlets 栏中添加两项:isChecked , lableValue

Class Actions 栏中添加一项:executeClick:

创建一个窗口(视图View)

从Tools  ->  Library 中拉一个 Push Button ,一个Lable ,一个 Check Box到 XIB 的 Window 窗口中

中间类跟窗口绑定

control + 选中 XIB 窗口中的 Control Class 移动到 Label,从下拉列表中选中lableValue

以同样的方式实现Check 跟 isChecked 的绑定

control + 选中windows窗口上的Button 移动到 Control Class上,选中下拉列表中executeClick:

为中间控制类创建文件

在XIB 窗口中选中Control Class  ->  FIle  ->  Write Class  ->Objective->  C(Language)  ->Create'.h' file(选中)  ->  Save  ->  选择 加入的项目  ->Add

为了便于管理,不管默认情况下文件放在了哪里,把他们拖到Classes 文件夹中

定义刚建的底层类

Interface 文件

#import <Foundation/Foundation.h>

@interface baseClass : NSObject {

NSString *showValue;

}

-(NSString *)showValue;

-(void)setshowValue:(NSString *)values;

@end

Implementation 文件

#import "baseClass.h"

@implementation baseClass

-(NSString *)showValue{

return showValue;

}

-(void)setshowValue:(NSString *)values{

[values retain];

[showValue release];

showValue=values;

}

-(void)dealloc{

[showValue release];

[super dealloc];

}

@end

在中间控制类中创建的类中使用底层类

Interface 文件(仅把父类加上)

#import <Cocoa/Cocoa.h>

@interface controlClass : NSObject {

IBOutlet id isChecked;

IBOutlet id lableValue;

}

- (IBAction)executeClick:(id)sender;

@end

Implementation 文件

#import "controlClass.h"

#import "baseClass.h"

@implementation controlClass

- (IBAction)executeClick:(id)sender {

baseClass *bClass = [[baseClass alloc] init];

NSString *firstName=@"FirstName";

NSString *secondName=@"SecondName";

if([< /span>isChecked state])

[bClass setshowValue:firstName];

else

[bClass setshowValue:secondName];

[lableValue setStringValue:[bClass showValue]];

[baseClass release];

[firstName release];

[secondName release];

}

@end

执行

command + B 编译 连接

command + R 执行, 生成

点击按钮标签显示:复选框选中为FirstName,不选中为SecondName,即实现了界面通过中间层向底层传递信息(Check Box是否选 中),并由中间层把信息显示在界面上(每次要显示的值)

转载于:https://www.cnblogs.com/sesexxoo/archive/2011/09/22/6190130.html

用例子说明MVC 设计模式(以Objective-C 实现)相关推荐

  1. MVC设计模式和MVC框架的区别

    MVC分为MVC设计模式和MVC框架,它俩也是有区别的,那就举个简单的例子,MVC设计模式就像是设计师手中的图纸,而MVC框架就想是工程师以设计师的图纸建造出来的产品.但是现在咱们就认为MVC就是MV ...

  2. mvc设计模式现在过时了吗_尚学堂115——设计模式、源码分析以及SpringData

    设计模式 什么是设计模式?你是否在你的代码里面使用过任何设计模式? 设计模式是在软件设计中常见问题的通用.可反复使用.多数人知晓的一种解决方案或模板:这些解决方案是在相当长的一段时间内由众多软件开发人 ...

  3. Flutter开发之MVC设计模式:新建文件与导入文件(八)

    在前面的例子中,所有的代码和路由都是在main.dart 下写的.我们知道不管后台还是前端,不管是Android 还是iOS开发,都是基于MVC设计模式开发的.那么flutter是怎么使用MVC设计模 ...

  4. iOS中MVC设计模式

    在组织大型项目的代码文件时,我们常用MVC的思想.MVC的概念讲起来非常简单,就和对象(object)一样.但是理解和应用起来却非常困难.今天我们就简单总结一下MVC设计理念. MVC(Model V ...

  5. 用 Hasor 谈一谈MVC设计模式

    为什么80%的码农都做不了架构师?>>>    MVC 是一个老生常谈的东西早已不是什么稀罕物件,不过在这里还是扒一扒到底都有多少种 MVC. 一.经典 MVC 先说最经典的 MVC ...

  6. android mvc使用方法,详细学习android mvc设计模式教程

    MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 web 应用程序的模式.其分层有助于管理复杂的应用程序,因为可以在一个时间内专门关注一个方面.例如 ...

  7. javacript中的mvc设计模式

    以下内容为原创翻译,翻译不对的地方还请原谅,凑合着看吧. 原文网址是: 来源:http://www.alexatnet.com/articles/model-view-controller-mvc-j ...

  8. php的mvc设计模式,什么是MVC设计模式?,

    详细内容 Model View Controller简称MVC,即模型视图控制器.MVC设计模式指定应用程序由数据模型.呈现信息和控制信息组成.该模式要求将每个模式分成不同的对象. MVC更像是一种架 ...

  9. php的设计模式和mvc,mvc设计模式是什么

    mvc设计模式是通过JSP技术来表现页面,通过Servlet技术来完成大量的事务处理工作,实现用户的商业逻辑,在这种模式中,Servlet用来处理请求的事务,充当了控制器的角色. "MVC& ...

最新文章

  1. JQuery轻量级网页编辑器 选中即可编辑
  2. Your CPU supports instructions that this TensorFlow binary was not compiled to use: SSE4.1 SSE4.2 AV
  3. 不要争了,别的程序员是这么给变量起名的!
  4. android 启动服务权限,android – 当我尝试启动服务时权限被拒绝
  5. 机器学习算法基础——机器学习概述
  6. 如何编写一个Jquery插件
  7. Anisble中的任务执行控制
  8. 安卓代码迁移:Make.exe: *** [***.o]Error 1
  9. ORACLE搭建Stream过程中报错【error收集】
  10. JS高级——手写call()、apply()、bind()
  11. linux b权限开头的文件夹,linux文件权限与目录配置
  12. ElectronNetTest
  13. matlab保存每次循环的结果
  14. 【前端面试题】前端布局问题
  15. UE4 用spline画正圆
  16. 【论文】模型剪枝(Network Pruning)论文详细翻译
  17. CodeForces 133 A.HQ9+(水~)
  18. 【附源码】计算机毕业设计java在线教学系统设计与实现
  19. Java位运算,常见的位运算
  20. linux wifi 源代码,MTK MT7601 WIFI AP linux driver source code - 源码下载|嵌入式/单片机编程|嵌入式Linux|源代码 - 源码中国...

热门文章

  1. matlab while循环
  2. 比特币源码研读(4)数据结构-交易池TransactionPool
  3. Spring Boot相关知识(二) Spring Boot项目启动的执行顺序和原理
  4. MyEclipse Spring 学习总结一 Spring IOC容器
  5. 使用Apache自带的ab命令测试网站性能(小强性能测试班学员作品)
  6. php取得客户端信息类
  7. ⑭云上场景 神州导航科技,智慧云平台三层架构部署实践
  8. OSChina 周六乱弹 —— 这辈子最丢脸的事
  9. 《Linux内核设计与实现》读书笔记 - 目录 (完结)
  10. 有关(int)和(int)的区别