indexPath nie jest aktualizowany po użyciu deleteRowsAtIndexPaths

Stworzyłem metodę, która aktualizuje mój UITableView, gdy użytkownik chce usunąć komórkę.

-(void)removeMoreFriendsRow:(NSNotification *)notification {
NSDictionary *d = [notification userInfo];
NSIndexPath *index = [d objectForKey:@"indexPath"];

[self.p_currentFriends removeObjectAtIndex:index.row];

[self.o_table deleteRowsAtIndexPaths:[NSArray arrayWithObject:index] withRowAnimation:UITableViewRowAnimationRight];
}

p_currentFriends to NSMutableArray, który zawiera wszystkie obiekty drukowane przez UITableView.

Ta metoda działa dobrze, gdy używam jej raz, ale kończy się niepowodzeniem, gdy używam jej więcej niż raz.

Wydaje się, że indexPath pozostaje taki sam przy każdym wywołaniu metody deleteRowsAtIndexPaths.

Na przykład - przy pierwszym wywołaniu użytkownik stuka w drugą komórkę, indexPath = [0,1], a właściwa komórka jest usuwana, - przy drugim wywołaniu użytkownik dotyka trzeciej komórki i indexPath = [0, 3] zamiast [0,2]

/ * Mam nadzieję, że jestem wystarczająco jasny: / * /

Jedynym sposobem, w jaki udało mi się to zrobić, jest użycie reloadData, ale chcę mieć animację dotyczącą usuwania komórek.

Czy ktoś ma rozwiązanie lub podpowiedź?

questionAnswers(6)

yourAnswerToTheQuestion