我有一个方法:
-(void)pickTheQuiz:(id)sender etat:(int)etatQuiz{
//i need to get the etatQuiz value here
}
在我的代码中的某个地方,我像这样调用上面的方法:
int etat_quiz=4;
[button addTarget:self action:@selector(pickTheQuiz:etat:)withObject:etat_quiz forControlEvents:UIControlEventTouchUpInside];
这样做时,我收到了错误:
Receiver type UIButton for instance message does not declare a method with selector 'addTarget:action:withObject:forControlEvent
修改
-(void)pickTheQuiz:(id)sender etat:(int)etatQuiz{
NSLog(@"The part number is:%i",((UIControl*)sender).tag);
}
答案 0 :(得分:3)
您无法像这样传递参数。您可以将“etatQuiz”设置为按钮的标记。并且可以在选择器中访问它。 例如:
button.tag = etatQuiz;
[button addTarget:self action:@selector(pickTheQuiz:) forControlEvents:UIControlEventTouchUpInside];
-(void)pickTheQuiz:(UIButton *)sender {
int value = sender.tag;
}
答案 1 :(得分:2)
您使用addTarget错误,您应该这样做:
addTarget:self action:@selector(pickTheQuiz:) forControlEvents:(UIControlEventTouchUpInside)
然后在按钮的标签中添加变量
答案 2 :(得分:0)
最简单的解决方案是将整数变量添加为按钮的tag
属性。然后,您可以使用((UIButton *) sender).tag
;
button.tag = 4;
[button addTarget:self action:@selector(pickTheQuiz:) forControlEvents:UIControlEventTouchUpInside];
然后在pickTheQuiz:
方法中:
int etatQuiz = ((UIButton *) sender).tag;