首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >操作中的选择器传递参数:@ iOS ()

操作中的选择器传递参数:@ iOS ()
EN

Stack Overflow用户
提问于 2014-04-03 11:24:38
回答 3查看 11.1K关注 0票数 3

我正在以编程方式向UITableViewCell添加一个按钮。按下按钮时要运行的方法是- (void) quantityDown:(id)sender rowNumber:(int)rowNum,其中rowNum是按钮所在的行。

将目标添加到按钮时,Xcode会自动完成以下操作:

代码语言:javascript
运行
复制
[buttonDown addTarget:self action:@selector(quantityDown:rowNumber:) forControlEvents:UIControlEventTouchUpInside];

但是不管我怎么尝试,我都不能把行号传递给这个方法。我假设代码的相关部分如下所示

代码语言:javascript
运行
复制
action:@selector(quantityDown:rowNumber:indexPath.row)

但这并不能解决这个问题。我见过其他的东西,比如

代码语言:javascript
运行
复制
action:@selector(quantityDown:)rowNumber:indexPath.row

代码语言:javascript
运行
复制
action:@selector(quantityDown:rowNumber:)withObject:@"first" withObject:@"Second"

但这两种方法都不起作用。我不需要传递第一个参数,只需要传递行号。我还尝试定义了像- (void) quantityDown:(int)rowNum这样的方法,然后像这样编写选择器:

代码语言:javascript
运行
复制
action:@selector(quantityDown:indexPath.row)

但这也不起作用。

有什么想法?

提前谢谢。

EN

Stack Overflow用户

发布于 2014-04-03 11:35:48

将每个按钮标记设置为indexPath.row。然后只需声明函数:

代码语言:javascript
运行
复制
- (void)quantityDown:(id)sender

在该方法中,执行以下操作:

代码语言:javascript
运行
复制
UIButton *btn = (UIButton *)sender;

像这样添加目标:

代码语言:javascript
运行
复制
[buttonDown addTarget:self action:@selector(quantityDown:) forControlEvents:UIControlEventTouchUpInside];

您可以从btn.tag获取行号。希望这能有所帮助。:)

票数 1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22827259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档