我知道这个问题已经被问了很多次,但是我希望在点击一个按钮时传递一个自定义对象作为参数。
UIButton addTarget:action:forControlEvents:
不允许我们这样做,但这对我很重要,所以我可以在自定义对象的基础上做进一步的工作。
如果可以选择添加目标,请提供解决方案。
代码是这样的:
自定义对象:
HeaderData *cell ;
按钮:
_forward =[UIButton buttonWithType:UIButtonTypeRoundedRect];
[_forward setTitle:@"F" forState:UIControlStateNormal];
_forward.frame = CGRectMake(300, (_CELL_HEIGHT-_LABEL_HEIGHT)/2, 10 ,_LABEL_HEIGHT);]
[_forward addTarget:web action:@selector(functionName:) forControlEvents:UIControlEventTouchUpInside];
和单击UIButton _forward时调用的函数是:
-(void)functionName:(UIButton *)sender{
//code for further programming on the basis of cell.
}
答案 0 :(得分:3)
您可以创建UIButton的自定义子类:
@interface CustomDataButton : UIButton
@property (nonatomic, strong) id userData;
@end
然后在functionName中,您可以撤回数据:
-(void)functionName:(UIButton *)sender
{
if ([sender isKindOfClass:[CustomDataButton class]])
{
id customData = ((CustomDataButton *) sender).userData;
}
}
警告:没有IDE编写。注意拼写错误等。