2010-10-12 77 views
0

我有一個UITableView,經常更改其數據。 (這只是NSString的,存儲在一個NSArray)UITableView加載數據太早...或太晚

Method 1> [self loadMyArray]; 
Method 2> [myTable reloadData]; 

我會在哪裏把那些2種方法......所以他們得到所謂每次都是顯示的看法?

我承擔一些可能的地方是:

viewWillLoad 
viewDidLoad 
viewWillAppear 
viewDidAppear 

,但我似乎無法找到該位置是一個我需要的:每一次出現的看法......但之前的UITableView本身建立。

如果我把我的2方法放在「加載」委託中......它不會經常刷新。

如果我把我的2方法內或「出現」委託...我注意到數據加載兩次。 (浪費)

+1

您提出了13個問題,但即使只有一個答案也不接受。也許你可以通過你的問題,看看是否有任何有用的答案,你可以接受? – willcodejavaforfood 2010-10-12 15:01:10

+0

「UITableView構建自己」是什麼意思?你是否在調用'viewWillAppear'yourself,並且你在使用UINavigationController? – 2010-10-12 15:23:52

+0

我不是在這裏「如果你給我獎勵積分,只會幫助別人」。如果你不想幫忙...不要幫助。我會幫助*任何人* ...不管「我得到積分」......還是不。 – Patricia 2010-10-21 01:34:36

回答

0

簡短的回答是,99%的時間,你應該始終把[myTableView reloadData]viewDidLoad

如果您希望的UITableView當您從子視圖返回的UIView重新加載其數據(例如你更新了一些數據),那麼你就需要考慮它是什麼,你正在使用的UITableView的。大多數時候,我正在使用一個NSFetchedResultsController,它有自己的方法來處理數據更新。不過,有時候我需要在UITableView重新加載時更新其他類型的數據。以下是我如何處理它:不要把[myTableView reloadData]放入viewDidLoad,我把它放在viewWillAppear

如果由於某種原因表格需要很長時間才能加載,並且在顯示數據之前會顯示一張空白表格,我會考慮使用工具來分析您的數據加載函數,可能真正的問題是您需要優化該功能使其花費更少的時間。