iOS:且说委托代理

来源:互联网 发布:淘宝怎么买精仿手表 编辑:程序博客网 时间:2024/05/06 00:13

委托代理(degegate),顾名思义,把某个对象要做的事情委托给别的对象去做。那么别的对象就是这个对象的代理,代替它来打理要做的事。反映到程序中, 首先要明确一个对象的委托方是哪个对象,委托所做的内容是什么。委托机制在很多语言中都用到的,这只是个通用的思想,网上会有很多关于这方面的介绍。
  那么在苹果开发过程中,用到委托的程序实现思想如下,我主要拿如何在视图之间传输信息做个例子。譬如:在两个页面(UIIview视 图对象)实现传值,用委托(delegate)可以很好做到。
方法:
@interface A:UIView
id transparendValueDelegate;
@property(nomatic, retain) id transparendValueDelegate;
@end
@implemtion A
@synthesize transparendValueDelegate

-(void)Function

NSString* value = @"hello";
[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、同一父视图下的一个子视图为另一个子视图的代理对象,让另一个子视图改变自身背景色为给定的颜色

0 0
原创粉丝点击