Ну, в общем, вы хотите сделать следующее:
- Удалить строку из источника данных (массива).
- Сказать табличному представлению, что вы удалили строку изисточник данных.
Правильный код, вероятно, должен выглядеть примерно так:
if (editingStyle == UITableViewCellEditingStyleDelete) {
[tableFavoritesData removeObjectAtIndex:indexPath.row];
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
}
РЕДАКТИРОВАТЬ: я не заметил другой ошибки.
Вам необходимо указатьтип анимации, а не просто передать ДА или НЕТ.Например: UITableViewRowAnimationFade.Проверьте возможные значения UITableViewRowAnimation здесь .
РЕДАКТИРОВАТЬ 2: Для комментария ниже (форматирование комментария отстой): Проверьте NSNotificationCenter в документах, особенно addObserver: селектор:имя: объект: и postNotificationName: объект: методы.
В другом вашем контроллере представления (возможно, метод viewDidLoad):
[[NSNotificationServer defaultCenter] addObserver:self selector:@selector(deletedRow:) name:@"RowDeleted" object:nil];
-(void) deletedRow:(NSNotification*) notification
{
NSDictionary* userInfo = [notification userInfo];
NSIndexPath indexPath = [userInfo objectForKey:@"IndexPath"];
// your code here
}
и при удалении строки:
if (editingStyle == UITableViewCellEditingStyleDelete) {
...
[[NSNotificationServer defaultCenter] postNotificationName:@"RowDeleted" object:self userInfo:[NSDictionary dictionaryWithObject:indexPath forKey:@"IndexPath"]];
}
Просто помните, что вам нужно удалить наблюдателя из центра уведомлений, когда вы освобождаете другой UIViewController:
[[NSNotificationServer defaultCenter] removeObserver: self];
Надеюсь, я не совершил много ошибок, у меня нет доступа к атм XCode.