【发布时间】:2014-05-14 16:03:49
【问题描述】:
我正在以编程方式向 UITableViewCell 添加一个按钮。按下按钮时要运行的方法是- (void) quantityDown:(id)sender rowNumber:(int)rowNum,其中rowNum是按钮出现的行。
将目标添加到按钮时,Xcode 会自动完成以下内容:
[buttonDown addTarget:self action:@selector(quantityDown:rowNumber:) forControlEvents:UIControlEventTouchUpInside];
但是无论我尝试什么,我都无法将行号传递给方法。我假设代码的相关部分看起来像
action:@selector(quantityDown:rowNumber:indexPath.row)
但这并不能解决问题。我见过其他类似的东西
action:@selector(quantityDown:)rowNumber:indexPath.row
和
action:@selector(quantityDown:rowNumber:)withObject:@"first" withObject:@"Second"
但两者都不起作用。我不需要传递第一个参数,只需传递行号。我也尝试过定义- (void) quantityDown:(int)rowNum之类的方法,然后编写如下选择器:
action:@selector(quantityDown:indexPath.row)
但这也行不通。
想法?
提前致谢。
【问题讨论】:
-
刚刚找到this 线程。会试试看。
-
是的,做到了。我设置了
buttonDown.tag = indexPath.row,然后在方法中我可以通过UIButton *clicked = (UIButton *)sender;访问它,然后将一个整数设置为clicked.tag -
您不能在按钮点击中传递值。可能的方法是从按钮发送者那里找到价值,或者在按钮点击时调用另一个方法。第一个是正确的方法。
标签: ios objective-c methods action selector