2009-03-30 2 views
5

Все продолжают писать об удалении раздела. Ну, я, похоже, не могу добавить.Помогите вставить новый раздел в TableView

В настоящее время я пытаюсь как это (который терпит неудачу с NSInternalInconsistencyException):

UITableView *tv = (UITableView *) self.tableView; 

if ([tv numberOfSections] == 1) 
{ 
    [tv beginUpdates]; 
    [tv insertSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationTop]; 

    NSLog(@"Inserted.. Brace for impact."); 
    [tv endUpdates]; 
} 

NSLog(@"Section count after update: %d", [tv numberOfSections]); // Never reached 

Если я правильно, вставляя раздел с индексом 0 следует поместить его в верхней части, натыкаясь все остальные секции вниз, правильно? Ну, если я выписал numberOfSections сразу после insertSections, то, по-видимому, нет изменений в количестве разделов.

Любые идеи?

Johan

ответ

3

Да, спасибо вам обоим.

После некоторого жонглирования мне, наконец, удалось заставить его работать. Это была комбинация обоих ваших предложений. Новые данные никогда не вставлялись, но также мне не приходилось увеличивать количество строк для первого вставленного элемента, но только второе.

2

Вы также обновили свой источник данных? Вы не можете просто обновить представление таблицы без обновления базовых данных.

+0

Да .. hm. Да, я все же исключаю. Спасибо, в любом случае. – Johan

2

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

+0

Ну, я делаю [количество элементов], чтобы узнать, есть ли причина для увеличения номера разделов, если какие-либо элементы добавлены, он возвращает 2, в противном случае 1. Или вы имели в виду необходимость активного номера сообщенийOfSectionsInTableView? – Johan

+0

Нет. Я не имел в виду активный обмен сообщениями с номеромOfSectionsInTableView. Я имел в виду то, что вы, по-видимому, уже делаете, возвращает правильное количество разделов в этой реализации сообщения. –

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