2010-08-18 125 views
1

我正在使用UITableViewController子類,該子類應該從「登錄表」(包含UITextField的用戶名和密碼以及啓動會話單元格的表),當用戶觸摸應該重新加載UITableViewController的「Start Session」單元,並且只顯示一個帶有「註銷」標籤的單元。UITableView數據重新加載問題

問題是,當我重新載入信息時,某些單元格顯示爲「被選中」(如藍色),並且某些單元格沒有標題。

我重裝表是這樣的:

[[self tableView] beginUpdates]; 
    [[self tableView] deleteSections:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, 2)] withRowAnimation:UITableViewRowAnimationTop]; 
    [[self tableView] insertSections:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, 0)] withRowAnimation:UITableViewRowAnimationTop]; 
    [[self tableView] endUpdates]; 

根據該表,我重裝幅度會改變,但是這是最基本的理念,是有什麼我失蹤?

回答

1
[[self tableView] beginUpdates]; 
[[self tableView] deleteSections:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, 0)] withRowAnimation:UITableViewRowAnimationBottom]; 
[[self tableView] insertSections:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, 2)] withRowAnimation:UITableViewRowAnimationBottom]; 
[[self tableView] endUpdates]; 

[[self tableView] beginUpdates]; 
[[self tableView] reloadSections:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, 2)] withRowAnimation:UITableViewRowAnimationBottom]; 
[[self tableView] endUpdates]; 

[[self tableView] reloadData]; 

這種方法的組合似乎在工作,我不知道,我不喜歡它,會留下它,直到我找到更好的解決方案。

+0

也許我錯過了這裏的東西......你爲什麼不只調用[[self tableView] reloadData];跳過其他一切。 – maxpower 2011-03-10 20:19:22

+0

@maxpower這個動畫很好。 – Moshe 2012-10-05 19:50:25