用例子说明MVC 设计模式(以Objective-C 实现)
来源:互联网 发布:淘宝客步骤 编辑:程序博客网 时间:2024/06/05 07:12
要实现的功能:
对窗体上一个复选框,标签修改,按钮事件进行演示
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是否选 中),并由中间层把信息显示在界面上(每次要显示的值)
- 用例子说明MVC 设计模式(以Objective-C 实现)
- 用例子说明MVC 设计模式(以Objective-C 实现)
- 用例子说明MVC 设计模式(以Objective-C 实现)
- Objective-c 实现单例设计模式
- Objective C 之 基础设计模式 (MVC)
- Objective-c:设计模式
- objective c 中MVC模式
- objective-C之宏定义实现单例设计模式
- objective c设计模式--KVO
- objective c设计模式--KVC
- Objective-C单例模式例子
- 编程笔记(Objective-c:MVC模式)
- Effective Objective-C 2.0 第9条:以“类族模式”隐藏实现细节
- MVC设计模式- 下载例子查看
- 通过例子学设计模式之--组合模式以及使用场景说明(C++实现)
- 通过例子学设计模式之--原型模式以及使用场景说明(C++实现)
- 通过例子学设计模式之--适配器模式以及使用场景说明(C++实现)
- 通过例子学设计模式之--简单工厂模式以及使用场景说明(C++实现)
- 【译转】加速页面下载率,可使用公共CDN
- <做人的尺度>
- linux lsof命令详解
- 第8周项目6-本月有几天
- h264知识点
- 用例子说明MVC 设计模式(以Objective-C 实现)
- 支持向量机SVM学习笔记
- axel 实现ubuntu下文件的多线程下载
- 【安卓】iOS Android major resolutions
- php面向对象中的知识总结
- 报表
- 【Android 系统开发】 编译 Android文件系统 u-boot 内核 并烧写到 OK-6410A 开发板上
- 用Excel做一个简易的投票工具
- 单链表的就地置换