2009-03-30 9 views
5

Wszyscy piszą o usuwaniu sekcji. Cóż, nie mogę tego dodać.Pomoc w wstawianiu nowej sekcji w TableView

Obecnie próbuję tak (który kończy się niepowodzeniem z 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 

Jeśli mam rację, wkładając sekcję z indeksem 0 należy umieścić go na górze, wpadając wszystkie inne sekcje w dół, dobrze? Cóż, jeśli wypiszę numberOfSections zaraz po insertSections, wydaje się, że nie ma zmian w liczbie sekcji.

Wszelkie pomysły?

Johan

Odpowiedz

3

Tak, dzięki wam obojgu.

Po pewnym żonglowaniu w końcu udało mi się uruchomić. To było połączenie obu twoich sugestii. Nowe dane nigdy nie zostały wstawione, ale także nie musiałem zwiększać liczby wierszy dla pierwszego wstawionego elementu, ale tylko drugiego.

2

Czy zaktualizowałeś również swoje źródło danych? Nie można po prostu zaktualizować widoku tabeli bez aktualizacji podstawowych danych.

+0

Tak .. hm. Tak, robię, wciąż ten sam wyjątek. Dzięki i tak. – Johan

2

Należy zaktualizować wiadomość numberOfSectionsInTableView klasy UITableViewDataSource.

+0

Cóż, robię [liczbę sztuk], aby sprawdzić, czy istnieje powód, aby zwiększyć numer sekcji, jeśli jakieś pozycje zostaną dodane, zwraca 2, w przeciwnym razie 1. Czy miałeś na myśli potrzebę aktywnej wiadomości numberOfSectionsInTableView? – Johan

+0

Nie. Nie miałem na myśli aktywnego przesyłania wiadomości numberOfSectionsInTableView. Miałem na myśli to, co najwyraźniej już robisz: zwracanie odpowiedniej liczby sekcji dotyczących implementacji tej wiadomości. –

Powiązane problemy