在我看来,我曾经有几个按钮,每个按钮都有一个与之相关的动作。
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];
但是现在我想用tableview替换所有那些按钮。我能够填充行,我知道需要使用didSelectRowAtIndexPath来处理单元格的select事件。但是如何实现动作:@selector(gotoProd :)在tableviews中?任何帮助将不胜感激。
答案 0 :(得分: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];
答案 1 :(得分:0)
呼叫
[self gotoProd:indexPath.row];
来自didSelectRowAtIndexPath
和
- (void)gotoProd:(int)rowSelected {
//Check row index here and do it accordingly
}