背景:为什么“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