用例子说明MVC 设计模式(以Objective-C 实现)
要实现的功能:
对窗体上一个复选框,标签修改,按钮事件进行演示
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 实现)相关推荐
- MVC设计模式和MVC框架的区别
MVC分为MVC设计模式和MVC框架,它俩也是有区别的,那就举个简单的例子,MVC设计模式就像是设计师手中的图纸,而MVC框架就想是工程师以设计师的图纸建造出来的产品.但是现在咱们就认为MVC就是MV ...
- mvc设计模式现在过时了吗_尚学堂115——设计模式、源码分析以及SpringData
设计模式 什么是设计模式?你是否在你的代码里面使用过任何设计模式? 设计模式是在软件设计中常见问题的通用.可反复使用.多数人知晓的一种解决方案或模板:这些解决方案是在相当长的一段时间内由众多软件开发人 ...
- Flutter开发之MVC设计模式:新建文件与导入文件(八)
在前面的例子中,所有的代码和路由都是在main.dart 下写的.我们知道不管后台还是前端,不管是Android 还是iOS开发,都是基于MVC设计模式开发的.那么flutter是怎么使用MVC设计模 ...
- iOS中MVC设计模式
在组织大型项目的代码文件时,我们常用MVC的思想.MVC的概念讲起来非常简单,就和对象(object)一样.但是理解和应用起来却非常困难.今天我们就简单总结一下MVC设计理念. MVC(Model V ...
- 用 Hasor 谈一谈MVC设计模式
为什么80%的码农都做不了架构师?>>> MVC 是一个老生常谈的东西早已不是什么稀罕物件,不过在这里还是扒一扒到底都有多少种 MVC. 一.经典 MVC 先说最经典的 MVC ...
- android mvc使用方法,详细学习android mvc设计模式教程
MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 web 应用程序的模式.其分层有助于管理复杂的应用程序,因为可以在一个时间内专门关注一个方面.例如 ...
- javacript中的mvc设计模式
以下内容为原创翻译,翻译不对的地方还请原谅,凑合着看吧. 原文网址是: 来源:http://www.alexatnet.com/articles/model-view-controller-mvc-j ...
- php的mvc设计模式,什么是MVC设计模式?,
详细内容 Model View Controller简称MVC,即模型视图控制器.MVC设计模式指定应用程序由数据模型.呈现信息和控制信息组成.该模式要求将每个模式分成不同的对象. MVC更像是一种架 ...
- php的设计模式和mvc,mvc设计模式是什么
mvc设计模式是通过JSP技术来表现页面,通过Servlet技术来完成大量的事务处理工作,实现用户的商业逻辑,在这种模式中,Servlet用来处理请求的事务,充当了控制器的角色. "MVC& ...
最新文章
- JQuery轻量级网页编辑器 选中即可编辑
- Your CPU supports instructions that this TensorFlow binary was not compiled to use: SSE4.1 SSE4.2 AV
- 不要争了,别的程序员是这么给变量起名的!
- android 启动服务权限,android – 当我尝试启动服务时权限被拒绝
- 机器学习算法基础——机器学习概述
- 如何编写一个Jquery插件
- Anisble中的任务执行控制
- 安卓代码迁移:Make.exe: *** [***.o]Error 1
- ORACLE搭建Stream过程中报错【error收集】
- JS高级——手写call()、apply()、bind()
- linux b权限开头的文件夹,linux文件权限与目录配置
- ElectronNetTest
- matlab保存每次循环的结果
- 【前端面试题】前端布局问题
- UE4 用spline画正圆
- 【论文】模型剪枝(Network Pruning)论文详细翻译
- CodeForces 133 A.HQ9+(水~)
- 【附源码】计算机毕业设计java在线教学系统设计与实现
- Java位运算,常见的位运算
- linux wifi 源代码,MTK MT7601 WIFI AP linux driver source code - 源码下载|嵌入式/单片机编程|嵌入式Linux|源代码 - 源码中国...
热门文章
- matlab while循环
- 比特币源码研读(4)数据结构-交易池TransactionPool
- Spring Boot相关知识(二) Spring Boot项目启动的执行顺序和原理
- MyEclipse Spring 学习总结一 Spring IOC容器
- 使用Apache自带的ab命令测试网站性能(小强性能测试班学员作品)
- php取得客户端信息类
- ⑭云上场景 神州导航科技,智慧云平台三层架构部署实践
- OSChina 周六乱弹 —— 这辈子最丢脸的事
- 《Linux内核设计与实现》读书笔记 - 目录 (完结)
- 有关(int)和(int)的区别