我已經閱讀了關於UITableView和reloadData的每篇文章,並沒有發現我爲我工作過。在UITableView可見時將數據添加到UITableView?
在UI構建器中,我有一個UIViewController xib文件,裏面有一個UIView,並且在UIView上有一個UITableView。我的UIViewController子類是引用作爲xib的文件所有者。我的子類是一個UITableViewDataSource和UITableViewDelegate,並且我已經將dataSource和委託引用插座連接起來,指向UI構建器中的UITableView。我已經將構建器中的UITableView鏈接到了我的子類中定義的IBOutlet。
最初,當顯示UITableView時,我用作數據源的基礎NSMutableArray沒有數據,所以UITableView是空的。
稍後,我修改數組,並向其中添加數據。
然後我曾嘗試以下刷新UITableView的,所有的觀點都無濟於事:
調用[myTableView reloadData]改變我的陣列
調用[myTableView performSelectorOnMainThread後:@選擇器(reloadData)withObject:nil waitUntilDone:NO];
在myTableView上調用insertRowsAtIndexPaths,因爲我可能需要實際告訴它哪一行要更新。
這些都沒有工作。但是,數據已經存在,並且所有東西似乎都已經連線好了,因爲每當我將UITableView拖動並釋放時,第一行已暫時消失,突然它在顯示時顯示預期內容。
任何想法?
我的猜測是其他委託方法 - numberOfRowsInSection - 無法正確執行。或者它當然可以是numberOfSectionsInTableView。重新加載後,其中一個或兩個都將返回零。 –
我還沒有實現numberOfSectionsInTableView,只有numberOfRowsInSection。我不知道numberOfSectionsInTableView是必需的,如果你只有一個部分在你的tableview中,但我會試一試(大概只需要返回1)。但是,我很懷疑,因爲如果我從一組完整的數據開始,所有的數據都會出現。在這種情況下,numberOfSectionsInTableView仍然不存在,但它的工作原理... –
@ xj1200即使我有所有委託方法正常工作,最終您在這裏的正確軌道上。詳情請參閱我的回答。 –