今天做东西用到了协议,这里在写一下吧
//celltwo类
@interface CellTwo : UITableViewCell {
IBOutlet UIButton *btn;
id delegate;
}
@property (assign) id delegate;
@property (nonatomic,retain) UIButton *btn;
-(IBAction)click:(id)sender; //按钮响应函数
@end
//协议
@protocol cellItemTwoDelegate
@optional
-(void)onCellItem:(int)index;
@end
这里定义一个类和一个协议,celltwo类里面有一个button。
下面在另外一个类里面要用到celltwo。
@interface AssortController : UIViewController
<cellItemDelegate>{
CellTwo *celltwo;
}
- (void)onCellItem:(int)index{
NSLog(@”onCellItem tag:%d”,index);
}
AssortController使用了cellItemDelegate协议,并且实现了协议里面的函数,然后记得
celltwo.delegate = self;
然后当我们点下按钮的时候会调用click,我们在click里面在调用协议定义的函数,
-(IBAction)click:(id)sender{
UIButton *button = (UIButton *)sender;
[delegate onCellItem:button.tag];
}
这样就会打印出来onCellItem tag:%d 这个了, 很简单,类似于C++的重虚函数。