Я потратил часы на поиск решения без какой-либо удачи. Я пытаюсь удалить строку (также отменить выбор той же строки) программно. После вызова удаления строки ниже, методы UITableViewDelgate вызывают ожидаемо и источник данных обновляется, но UITableView не обновляется. Вызов deselectRowAtIndexPath также не работает. Я пробовал все виды сценариев, как показано в комментариях.Удаление строки не обновляет таблицу в приложении ios
Это мой код: checkoutPerson вызван в результате того, что наблюдатель прослушивает сообщения NSNotificationCenter.
- (void) checkoutPerson: (NSNumber*) personId {
Person *person = [_people objectForKey:personId];
if(person)
{
// Remove person from data source
int rowIndex = person.rowIndex;
S2Log(@"Deleting row number=%d", rowIndex);
[_allKeys removeObjectAtIndex:rowIndex];
[_people removeObjectForKey: personId];
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:rowIndex inSection:0];
//[[self tableView] beginUpdates];
[self.tableView deselectRowAtIndexPath:indexPath animated:YES];
S2Log(@"Deleting indexPath row=%d", [indexPath row]);
[self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]
withRowAnimation:UITableViewRowAnimationFade];
//[[self tableView] endUpdates];
S2Log(@"Reloading data");
//[[self tableView] reloadData];
//[self performSelector:@selector(refreshView) withObject:nil afterDelay:1.5];
//[self.tableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:YES];
}
}
Я буду признателен за помощь. Thanks -Virendra
Я считаю, что удаленная ячейка не перерабатывается. Если я удаляю строку посередине, последняя строка всегда удаляется (так как есть еще один элемент), но удаленная строка остается.
Вы подтвердили, что этот код действительно называется? Если да, уверены ли вы, что 'self.tableView' не' nil'? Если это не 'nil', это различные методы источника данных табличного представления, вызванные после вызова' deleteRowsAtIndexPAth'? Отражают ли эти звонки обновленные данные? – rmaddy
Абсолютно верно! – user2141071
Я задал несколько вопросов. К чему относится ваше «да»? – rmaddy