我在UITableView的每个单元格中都有一个按钮。现在我想将每个按钮绑定到函数中的操作方法:

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { ...}


这是我的尝试代码:

    NSString* functionNamePrefix = @"actionMethod_";
    NSString* functionName = [functionNamePrefix stringByAppendingString:[NSString stringWithFormat:@"%d",indexPath.row]];
    SEL selectorFromString = NSSelectorFromString(functionName);
    [button addTarget:self action:@selector(selectorFromString:) forControlEvents:UIControlEventTouchDown];


失败的原因是:操作选择器将“ selectorFromString”作为函数名称,但是SEL由字符串转换。

有什么建议吗? TIA!

最佳答案

更好的方法是为所有按钮分配相同的操作,然后在action方法中计算出按钮按下时所在的行。否则,如果您的单元格被重用,则每个按钮都将分配有多个操作,这将非常令人困惑。

使用我对this question的回答,您可以轻松确定按钮或其他控件所在的行。

08-18 03:58