2009-03-30 15 views
5

Jeder schreibt weiter über das Löschen eines Abschnitts. Nun, ich kann anscheinend keinen hinzufügen.Hilfe zum Einfügen eines neuen Abschnitts in einem TableView

Derzeit bin ich wie diese versuchen (die mit NSInternalInconsistencyException ausfällt):

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 

Wenn ich richtig bin, 0 einen Abschnitt mit Index einfügen sollte es an der Spitze platzieren, alle anderen Abschnitte stoßen nach unten, Recht? Nun, wenn ich direkt nach den insertSections die numberOfSections schreibe, scheint es keine Änderung in der Anzahl der Sektionen zu geben.

Irgendwelche Ideen?

Johan

Antwort

3

Ja, danke an euch beide.

Nach etwas Jonglieren, habe ich es endlich geschafft, es zum Laufen zu bringen. Es war eine Kombination aus beiden Vorschlägen. Die neuen Daten wurden nie eingefügt, aber ich musste auch nicht die Zeilenanzahl für das erste eingefügte Element erhöhen, sondern nur das zweite.

2

Haben Sie auch Ihre Datenquelle aktualisiert? Sie können nicht nur die Tabellenansicht aktualisieren, ohne auch die zugrunde liegenden Daten zu aktualisieren.

+0

Ja .. hm. Ja ich tue, immer noch die selbe Ausnahme. Danke trotzdem. – Johan

2

Sie müssen die numberOfSectionsInTableView Nachricht der UITableViewDataSource Klasse aktualisieren.

+0

Nun, ich mache eine [Artikelanzahl], um zu sehen, ob es einen Grund gibt, die Abschnittsnummer zu erhöhen, wenn irgendwelche Artikel hinzugefügt werden, gibt es 2 zurück, sonst 1. Oder meinst du, du musst numberOfSectionsInTableView aktiv melden? – Johan

+0

Nein. Ich meine nicht aktiv Messaging numberOfSectionsInTableView. Ich meinte, was Sie anscheinend bereits tun: die richtige Anzahl von Sektionen für diese Nachrichtenimplementierung zurückgeben. –

Verwandte Themen