UIButton的替代选项addTarget:action:forControlEvents:IOS中的方法

时间:2015-08-05 10:46:29

标签: ios objective-c uibutton

我知道这个问题已经被问了很多次,但是我希望在点击一个按钮时传递一个自定义对象作为参数。

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.
}

1 个答案:

答案 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编写。注意拼写错误等。