IOS开发中委托代理(degegate)的理解和使用示例
来源:互联网 发布:绿坝花季护航软件 编辑:程序博客网 时间:2024/06/04 18:28
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
委托机制是一种设计模式,在很多语言中都用到的,这只是个通用的思想,网上会有很多关于这方面的介绍。
那么在苹果开发过程中,用到委托的程序实现思想如下,我主要拿如何在视图之间传输信息做个例子。
譬如:在两个页面(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中委托代理(degegate)的理解和使用示例
- 委托代理(degegate)的理解和使用示例
- degegate的理解和使用示例
- degegate的理解和使用示例
- iPhone开发之Delegate(代理、委托)的理解和使用
- iPhone开发之Delegate(代理、委托)的理解和使用
- iOS-代理委托的使用
- iOS-代理委托的使用
- iOS开发中代理的简单理解
- 快速理解ios的委托协议代理(delegate)
- 关于iOS 委托 代理 协议 的理解
- 代理(委托)的理解
- C#中委托的理解和使用
- 自学iOS开发系列----OC(协议和委托代理)
- 浅谈IOS开发中委托(Delegate)的使用
- ATL Internals 2ed复习.chapter 3.CAutoPtr
- 失恋了,记录下心理路程
- 话说软件详细设计工具
- int、int.Parse()、int.TryParse()、Int32.Parse()、Int32.TryParse()、Convert.ToInt32()区别
- socket通信之最简单的socket通信
- IOS开发中委托代理(degegate)的理解和使用示例
- 关于linux设备模型kobject,kset,ktype
- VS2010与.NET4系列 6.ASP.NET,HTML,JavaScript片断支持
- pthread_join
- 数据结构
- Linux安装subversion
- DISTINCT与ORDER BY
- 组合数学->排列组合
- Linux设备驱动编程模型之上层容器篇