我自己写了一个关于无任何参数返回的delegate作为参考。我写了关于B类委托在A类中实现。
B.h文件上写下要实现的方法
@protocol NameDelegate
-(void)yourFunctionName; //定义协议与方法
@end
#import <UIKit/UIKit.h>
@interface YourView
@property (assign,nonatomic) id <InviteDelegate> delegate;//声明委托变量
@end
接着在B.m中写下何时要实现delegate,我直接写在初始化函数中,你可以写在你所需要监听的函数中。
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
A *view=[[A alloc] init];
self.delegate=view; // 添加delegate
[view yourFunctionName]; //实现delegate,此delegate实现方法写在A类中。
}
[self addSubview:yourView];
}
return self;
}
A.h,记得先引用B.h , 必须在后面加需要实现的委托
@interface ViewController : UIViewController<NameDelegate>{
A.m,在 viewDidLoad 内记得实现委托
self.delegate =self; //self可能也是self.yourview,具体看你是怎么加视图上去的。
接着在A.m中就实现方法吧
-(void)yourFunctionName
{
NSLog(@"I am a delegate");
}