2013-03-06 78 views
0

我遇到了一個問題,其中沒有爲包含UITableView的UIViewController調用viewDidAppear方法。事實上,tableView數據源方法在viewWillAppear之後立即被調用。我發現原因是tableView委託和數據源被設置在viewDidLoad方法中(tableView reloaddata:不被調用)。如果我將這兩行代碼移動到viewDidAppear方法(並添加了tableView reloaddata :),一切正常。我有點困惑,因爲我通常在viewDidLoad方法中設置視圖委託。設置UITableView委託和數據源的最佳實踐

有沒有人見過這個?這是一個更大問題的症狀嗎?在設置委託和數據源方面,是否還有最佳做法?

任何有識之士將不勝感激。謝謝!

回答

1

viewWillAppear方法將在UIViewController的視圖即將顯示時調用。 viewDidAppear方法將在顯示UIViewController的視圖後調用。

這兩種方法都會在您的viewController每次要顯示視圖時被調用(即第一次或者被其他viewController發現)。

因此,一般來說,您應該將委託設置爲viewDidLoad方法。

你正在觀察的行爲絕對沒問題。沒有更大問題的症狀。