У меня есть этот код на моем cellForRowAtindexPath с пользовательской ячейкой и кнопкой на каждой ячейке.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *MyIdentifier = @"tblCellView";
TableCellView *cell = (TableCellView *)[tableView dequeueReusableCellWithIdentifier:MyIdentifier];
Alarms *alarma = (Alarms *)[alarmsArray objectAtIndex: indexPath.row];
if (!cell) {
[[NSBundle mainBundle] loadNibNamed:@"TableCellView" owner:self options:nil];
cell = tblCell;
UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(-7, 4, 30, 33)];
[button addTarget:self action:@selector(favButtonAction:) forControlEvents:UIControlEventTouchUpInside];
[button setTag:1];
[cell.contentView addSubview:button];
[button release];
}
// Set up the cell.
[cell setLabelText: [alarma nombreAlarma]];
UIButton *button = (UIButton *)[cell viewWithTag:1];
button.tag = indexPath.row;
return cell;
}
Моя проблема в том, что, когда я нажимаю на кнопку, я получаю случайные результаты, как только я двигаюсь по таблице, и ячейки используются повторно, я получаю разные индексы, которые не равны метке tex для рассматриваемой ячейки.
-(IBAction)favButtonAction: (id)sender
{
UIButton *button = (UIButton *)sender;
Alarms *alarma = (Alarms *)[alarmsArray objectAtIndex: button.tag];
NSLog(@"labelText: %@",[alarma nombreAlarma]);
}
например, первая ячейка всегда в порядке, но последняя ячейка равна первому objectAtIndex (возможно, button.tag равен 0, когда должно быть 14?)