1,新建一个工程,工程名字为A;
2.新建一个头文件,命名为ClassADelegate;
3.新建一个objective-c class,命名为B;
ClassADelegate.h中的内容为:
@protocol ClassADelegate //在类A中声明并且定义一个代理
-(void)ChangeObjectFromClassB;
@end
A.h中的新增内容为:
#import "ClassADelegate.h"
@interface A : UIViewController <ClassADelegate>{
id<ClassADelegate> delegate;
}
@property (nonatomic,assign) id <ClassADelegate> delegate;
@end
通过IB或者代码在A的xib中新增一个按钮,并做一个按钮的响应函数,本文中使用纯代码写的按钮
需要在A.m中添加头文件B.h
按钮的响应函数代码为
B *aa = [[B alloc] init];
self.delegate = aa;
[self.delegate ChangeObjectFromClassB];
接下来就是B.h:
#import "ClassADelegate.h"
@interface show : NSObject <ClassADelegate> {
}
- (void)ChangeObjectFromClassB;
@end
剩下的就是在B.m中实现ChangeObjectFromClassB函数了
-(void)ChangeObjectFromClassB
{
NSLog(@"Test delegate");
}
至此,一个简单的delegate算是完成了,我们点击bt时,会打印Test delegate信息.通过对代理的学习,发现,delegate与protocol始终联系在一起.