2

在我看来,我以前只有几个按钮,每个按钮都有一个与之关联的操作。

    UIButton *testButton = [[UIButton alloc] initWithFrame:CGRectMake(120,300,90,90)];
    [testButton setBackgroundImage:[UIImage imageNamed:@"test.jpg"] forState:UIControlStateNormal];
    [testButton addTarget:self.view action:@selector(gotoProd:) forControlEvents:UIControlEventTouchUpInside];
    [testButton addt
    [scrollView testButton];

但现在我试图用带有行的表格视图替换所有这些按钮。我能够填充行并且我知道需要使用 didSelectRowAtIndexPath 来处理单元格的选择事件。但是如何在 tableviews 中实现 action:@selector(gotoProd:) ?任何帮助将不胜感激。

4

2 回答 2

2

最直接的方式如下所示:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

      switch (indexPath.row) {
        case 0:
            [self doRow0Action];
            break;
        case 1:
            [self doRow1Action];
            break;
        // etc...

        default:
            break;
    }
}

如果你想改为,你可以用 SEL 类型初始化一个数组:

[actionArray addObject:@selector(doRowNAction)];

然后像这样访问它:

[self performSelector:[actionArray objectAtIndex:indexPath.row] withObject:nil];
于 2012-06-18T03:16:17.233 回答
0

称呼

[self gotoProd:indexPath.row];

didSelectRowAtIndexPath

 - (void)gotoProd:(int)rowSelected {
      //Check row index here and do it accordingly
 }
于 2012-06-18T03:14:42.367 回答