背景:爲什麼「numberOrRowsInSection」在「viewDidLoad」中途被調用?
在我的viewDidLoad我加載測試日曆數據(通過EventKit)到iPhone。我注意到,當表視圖加載第一次時,它不會看到這些數據。
當我看到日誌消息的順序我看到它是這樣的:
記錄在這裏:
[AppointmentListController viewDidLoad] Starting
[AppointmentListController populateTestData] Populating the test data now
[AppointmentListController tableView:numberOfRowsInSection:] Number of rows = 0
[AppointmentListController viewDidLoad] Loading the existing calendar events
[AppointmentListController viewDidLoad] Ending
問題(S)
爲什麼「numberOrRowsInSection」在「viewDidLoad」中途被調用?我問這是因爲這是我所看到的(這是什麼應該發生?)。
如果這是正常的,你不能肯定的viewDidLoad將numberOrRowsInSection之前完成,那麼這將意味着你需要一個「[self.tableView reloadData]」你「的viewDidLoad」方法的末尾,以確保它更新?
OK DarkDust - 這是確定設置UI元素在「viewDidLoad中」的方法,雖然不是嗎?在這種情況下,我認爲你在「viewDidLoad」中說,在點擊UI元素配置行之前先加載你的數據 - 我在這裏是否正確理解你? – Greg 2011-03-19 08:51:00
是的,在'viewDidLoad'中設置和配置UI元素非常好。是的,你已經理解了正確的:在viewDidLoad方法中,首先設置非UI數據(只要它們不依賴UI元素中的數據),然後設置UI元素。這樣你就不需要自己調用'reloadData',它會在表視圖方便的時候被調用,從而防止不必要的方法調用。 – DarkDust 2011-03-19 08:56:40