如果A想用B中的方法就要用代理来实现.
具体实现步骤如下:
(一个控制器一个uiview,uiview为A,控制器为B)
1: 首先创建一个协议,该协议中的方法是 b想用a中的那个方法 func
2: a想用b里的方法(在A类中)
((可以理解)为 A 想调用B的方法,这个时候可理解成A继承了B.这时候b要做为父类,b里拥有子类,在b的.h文件中声明一个b类对象的属性)
首先B的.h文件中 先引入协议的头文件. 先遵守协议. 并且要拥有包含A类的属性(即声明一个B类的对象)
/**
* 实现代理
*/
#import "DelegateViewController.h"
#import "MjFooterView.h"
@property(nonatomic,retain)MjFooterView *mjFoorView;
3:在A类中
在A类的.h文件中,首先引入协议的头文件,然后在声明代理的对象
/**
* 实现代理对象
*/
@property(nonatomic,retain)id<DelegateViewController> target;
4:在B对象中的.m文件中
4.1要把实际开辟内存空间的A类对象赋值给当前B对象中的A类的属性对象
MjFooterView *footer = [MjFooterView footerView];
/**
* 设置代理
*/
self.mjFoorView = footer;
4.2 在设置当前A类属性对象中的协议对象为self
self.mjFoorView.target = self;
5:在A对象的.m文件中的调用
[self.target loadingMoreData];
iOS中Delegate的使用介绍
于 2015-07-17 10:35:41 首次发布