2010-04-21 4 views
0

У меня есть таблица, с которой я манипулирую с помощью tableViewController (нет nib, а контроллер создает таблицу за кулисами) Я пытаюсь удалить строку из таблицы на основе ее номера строки; Я могу удалить его из массива, который я использую для создания ячейки в cellForRowAtIndexPath, но я получаю странную ошибку, если попытаюсь сделать следующее: это тот же код, что и в tableView: commitEditingStyle: forRowAtIndexPath: , где он отлично работаетКак удалить таблицы строк программно?

NSIndexPath * indexPath = [NSIndexPath indexPathForRow: + 1 надрез: 1]

[self.tableView deleteRowsAtIndexPaths: [NSArray arrayWithObject: indexPath] withRowAnimation: UITableViewRowAnimationFade];

Это дает ошибку

- [_ WebSafeForwarder forwardInvocation:]

, а затем выпрыгивает из метода, но не врезаться приложение

Может кто-нибудь помочь?

ответ

-1

Хорошо, что вам не хватает полуколонии на вашей первой линии.

В случае сомнений, очистить свой синтаксис ...

В качестве отправной точки наблюдения, большинство программистов я работал и разговаривал по-настоящему ненавидеть UITableViewController. Это действительно ничего не добавляет к функциональности для пользователя и только смущает то, что разработчикам действительно хотелось бы контролировать ... например, положение таблицы через XIB.

Это просто класс удобства и по моему опыту вызывает больше проблем, чем препятствует.

+0

Это на самом деле имеет точку с запятой в коде - вырезать и вставлять ошибки! –

0

Вам необходимо сделать это в этом блоке.

[self.tableView beginUpdates]; 

/// 

[self.tableView endUpdates]; 

замечают одну вещь, что, когда блок достигает своего конца

- (void) numberOfRowsInSection:(NSInteger)section 

будет называться снова. поэтому вам также нужно обновить количество строк в представлении таблицы.

Надеюсь, это поможет.

Спасибо,

Madhup

Смежные вопросы