2012-09-14 45 views
0

我想讓我的數據源與控制器不同,但它不起作用。 cellForRowAtIndexPath,numberOfRowsInSection和numberOfSectionsInTableView方法不會在我的其他文件中調用。我已經設置它使用dataSource協議,並在我的控制器的viewDidLoad我有這[self.tableView setDataSource:dataModel];
我不明白爲什麼它不起作用。你可以將dataSource設置爲與interfacebuilder中的viewController不同的文件嗎?但它應該工作,因爲viewDidLoad中的setDataSource。也許還有另一個問題?UITableViews dataSource方法沒有被調用

+1

我想我們會希望看到更多的代碼。你沒有檢查dataModel不是零? – onnoweb

+0

此外,是'-viewDidLoad'甚至被調用?您可以在Interface Builder中創建一個對象,將其類型設置爲您的自定義類,並將'tableView'的'dataSource'插座連接到該對象,BTW。 – user1118321

+0

感謝@onnoweb,我在分配對象之前設置了dataSource。如果你留下真實的答案,我可以將其設置爲我接受的答案。 – fuskaren

回答

0

當您將dataModel設置爲dataSource時,是否檢查過dataModel不爲零?

0

通過使用類別的擴展類別,您可以在不同的文件中設置您的控制器。我不確定你想使用你的控制器有你的文章中的dataSource。

在任何情況下,您仍然需要通過在非零對象上使用setDataSource方法設置對象委託來定義委託。在你的情況下,如果你的對象是零,自從sending messages to nil is silently ignored以來沒有任何東西會被你的UITableView對象調用。