我的桌子有一个自定义单元格,有两个按钮可供选择; '是'和'不'。
我的表有多个单元格类型,所以我创建了一个XIB,我在同一个xib中有两个视图;我根据章节编号选择单元格的视图。
CellTakeFive *cell = (CellTakeFive *)[tableView dequeueReusableCellWithIdentifier:@"CellTakeFive"];
if (cell == nil) {
if (indexPath.section == 1 || indexPath.section == 2){
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"CellTakeFive" owner:self options:nil];
cell = [topLevelObjects objectAtIndex:1];
}
else if (indexPath.section == 0 || indexPath.section == 3)
{
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"CellTakeFive" owner:self options:nil];
cell = [topLevelObjects objectAtIndex:0];
}
}
现在我设置了相同的代表'是'和'不'选择两个XIB中的按钮。我点击Yes
和No
点按即可拨打电话。
- (IBAction)onClickSelection:(id)sender
{
[self.delegate selectionWasTapped:self tab:[sender tag]];
}
现在我在两个单元格中都有不同的设计,所以当我点击Cell1(标记设置为:1)委托发送自我和委托调用我的表类。
但问题是有时委托会向自己发送错误的单元格,而我在表类中得到错误的单元格。
这是我的委托方法:
- (void)selectionWasTapped:(CellTakeFive *)cell tab:(int)tag
{
selectedButtonTag = tag;
NSIndexPath *indexPath = [self.tblList indexPathForCell:cell];
NSLog(@"-----%i -- %i ----",indexPath.section,indexPath.row);
[_tblList beginUpdates];
[_tblList reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
[_tblList endUpdates];
}
那里有什么问题?如何通过点击按钮发送特定单元格。?
答案 0 :(得分:0)
我通过不使用出队单元解决了这个问题。表示每次表格使用单元格时都会加载单元格。在这种情况下,我每次都需要调用我的业务逻辑。
所以我删除条件。
CellTakeFive *cell = (CellTakeFive *)[tableView dequeueReusableCellWithIdentifier:@"CellTakeFive"];
if (indexPath.section == 1 || indexPath.section == 2){
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"CellTakeFive" owner:self options:nil];
cell = [topLevelObjects objectAtIndex:1];
}
else if (indexPath.section == 0 || indexPath.section == 3)
{
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"CellTakeFive" owner:self options:nil];
cell = [topLevelObjects objectAtIndex:0];
}