IOS开发中委托代理(degegate)的理解和使用示例
2012-10-06 17:07
435 查看
IOS开发中委托代理(degegate)的理解和使用示例
委托代理(degegate),顾名思义,把某个对象要做的事情委托给别的对象去做。那么别的对象就是这个对象的代理,代替它来打理要做的事。
反映到程序中,首先要明确一个对象的委托方是哪个对象,委托所做的内容是什么。委托机制是一种设计模式,在很多语言中都用到的,这只是个通用的思想,网上会有很多关于这方面的介绍。
那么在苹果开发过程中,用到委托的程序实现思想如下,我主要拿如何在视图之间传输信息做个例子。
譬如:在两个页面(UIIview视图对象)实现传值,用委托(delegate)可以很好做到!
方法:
类A
@interface A:UIView
id transparendValueDelegate;
@property(nomatic, retain) id transparendValueDelegate;
@end
@implemtion A
@synthesize transparendValueDelegate
-(void)Function
{
NSString* value = @"hello";
//让代理对象执行transparendValue动作
[transparendValueDelegate transparendValue: value];
}
@end
类B
@interface B:UIView
NSString* value;
@end
@implemtion B
-(void)transparendValue:(NSString*)fromValue
{
value = fromValue;
NSLog(@"the value is %@ ",value);
}
@end
//下面的设置A代理委托对象为B
//在定义A和B类对象处:
A* a = [[A alloc] init];
B* b = [[B alloc] init];
a. transparendValueDelegate = b;//设置对象a代理为对象b
这样在视图A和B之间可以通过委托来传值!
下面这个例子委托有两类:
1、一个视图类对象的代理对象为父视图,子视图用代理实现让父视图显示别的子视图
2、同一父视图下的一个子视图为另一个子视图的代理对象,让另一个子视图改变自身背景色为给定的颜色
===============================================
规范格式如下:
@protocol TransparendValueDelegate;
@interface A:UIView
id< TransparendValueDelegate > m_dTransparendValueDelegate;
@property(nomatic, retain) id m_dTransparendValueDelegate;
@end
//代理协议的声明
@protocol TransparendValueDelegat<NSObject>
-(void)transparendValue:(NSString*)fromValue;
@end
相关文章推荐
- IOS开发中委托代理(degegate)的理解和使用示例
- IOS开发中委托代理(degegate)的理解和使用示例
- IOS中委托代理(degegate)的理解和使用示例
- IOS开发中委托代理(delegate)的理解和使用示例
- 苹果开发中委托代理(degegate)的理解和使用示例
- 委托代理(degegate)的理解和使用示例
- ios高效开发-理解属性和正确的使用属性
- 【iOS开发】block使用与理解
- 【iOS开发】观察者模式-通知的使用及深入理解
- 微博开发平台SDK使用示例(iOS版)
- iOS开发——响应链(Responder Chain)的深入理解和代码示例
- iOS App设计模式开发中对迭代器模式的使用示例
- iOS开发示例————使用CAShapeLayer&UIBezierPath绘制数据饼图
- degegate的理解和使用示例
- iOS开发示例————第三方框架MJRefresh简单使用
- iOS开发使用UITableView制作N级下拉菜单的示例
- iOS App使用设计模式中的模板方法模式开发的示例
- 【iOS开发】网络socket的使用和理解
- iOS开发中UITabBarController的使用示例
- iOS开发——响应链(Responder Chain)的深入理解和代码示例(二)