I wie gezeigt haben derzeit eine Schaltfläche definiert in einer Zelle und ein Verfahren seiner UITouchDown Aktion zu verfolgen:UITableView Cell - erhalten IndexPath.row von Button?
- (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];
}
Jedoch, wenn ich eine Zelle im Simulator klicken, ist die Konsole Debug-Meldung: „Ereignis ausgelöst (null) "und meine App stürzt kurz darauf ab.
Wie kann ich den indexPath.row-Wert korrekt in meine clickedCallSign-Methode abrufen?
Siehe bessere Lösung für indexPath aus gedrückten Taste zu finden: http://StackOverflow.com/a/16270198/308315 – iwasrobbed