Obecnie mam przycisk zdefiniowane w komórce oraz sposób śledzić swoje działania UITouchDown jak pokazano:Komórka UITableView - pobierz IndexPath.row z przycisku?
- (void) clickedCallSign:(id)sender {
int index = [sender tag];
NSLog(@"event triggered %@",index);
}
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
//Callsign button
UIButton *button;
CGRect rect = CGRectMake(TEXT_OFFSET_X, BORDER_WIDTH, LABEL_WIDTH, LABEL_HEIGHT);
button = [[UIButton alloc] initWithFrame:rect];
cell.tag=[indexPath row];
button.tag=[indexPath row];
[button addTarget:self action:@selector(clickedCallSign:) forControlEvents:UIControlEventTouchDown];
[button setBackgroundColor:[UIColor redColor]];
[button setTitle:@"hello" forState:UIControlStateNormal];
[cell.contentView addSubview:button];
[button release];
}
Jednak po kliknięciu komórki w symulatorze, komunikat debug konsola jest: „zdarzenie wywołane (null) "a moja aplikacja wkrótce się zawiesza.
Jak poprawnie uzyskać wartość indexPath.row w mojej metodzie clickedCallSign?
lepiej widzieć rozwiązanie dla znalezienia indexPath z naciśniętym przyciskiem: http://stackoverflow.com/a/16270198/308315 – iwasrobbed