Al momento ho un tasto definito in una cella e un metodo per monitorare la sua azione UITouchDown come mostrato:UITableView Cell - ottieni IndexPath.row dal pulsante?
- (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];
}
Tuttavia quando si fa clic una cella nel simulatore, il messaggio console di debug è: "evento attivato (null) "e la mia app si blocca poco dopo.
Come posso ottenere il valore correttamente indexPath.row nel mio metodo clickedCallSign?
vedere meglio la soluzione per la ricerca di indexPath dal tasto premuto: http://stackoverflow.com/a/16270198/308315 – iwasrobbed