Ich bin auf einen wirklich rätselhaften Fehler gestoßen. Die erste Zeile meiner UITableView gibt 1 zurück und die zweite Zeile gibt 0 im indexPath zurück! Wie ist das überhaupt möglich?
In meinem `- (void) viewDidLoad` ist noch alles in Ordnung. Ich hebe die erste Zeile erfolgreich mit hervor
currentRow = 0;
[tableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:currentRow inSection:0]
animated:NO scrollPosition:UITableViewScrollPositionNone];
Ich habe die Variable currentRow
zum Verfolgen, welche Zeile ausgewählt ist (ein anderes Steuerelement ändert sich entsprechend der aktuell ausgewählten).
Jetzt habe ich in meiner `didDeselectRowAtIndexPath`-Delegatenfunktion:
-(void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath {
...
NSLog(@"IndexPath: %@", [indexPath description]);
}
Das Protokoll zeigt Folgendes:
IndexPath: <NSIndexPath 0x79509d0> 2 indexes [0, 0]
wenn ich die zweite Reihe berühre und
IndexPath: <NSIndexPath 0x79509d0> 2 indexes [0, 1]
wenn ich die erste Reihe berühre .
Es gibt kein Einfügen oder Löschen oder Sortieren von Zeilen usw., auch kein Scrollen. Es ist eine einfache UITableView, gruppiert, mit 1 Abschnitt und 3 Zeilen. Was könnte das verursachen?
Danke für deine Hilfe,
S.
Trotz des Titels ist die überladene Methode tatsächlich
didDeselectRowAtIndexPath
so, dass das Verhalten korrekt zu sein scheint. Wenn die 1. Zeile berührt wird, wird die 0 abgewählt und umgekehrt.quelle