2011-01-28 43 views
1

我是新的可可和核心數據,我遇到了一個奇怪的問題。我成功地創建了Core Data模型,導入了數據,製作了UI(導航控制器,帶有searcDdisplayController的tableViewController),但現在我陷入了一個問題。如果我(在筆尖文件,沒有的UITableView)實施的UITableViewController,結果從fetchedResultsController獲取是怪異 - 行數是正確的(500行),但他們都在重複自己 - 只有8個不同行。iPhone的UITableViewController和核心數據行重複在表查看

但是,我能夠通過添加@synthesize tableView來解決此問題;在.m文件中。

然後,我遇到了另一個問題 - 當我點擊一行並推動細節視圖,然後單擊導航控制器上的後退按鈕,tableView中的選定行仍處於選中狀態。

我希望我清楚什麼是錯的。讓我回顧一下: 如果我不把@synthesize tableView;在實現文件的頂部,取消選擇該行工作正常,但結果是錯誤的 - 在tableView中重複了8行(滿分500)。 如果我把@synthesize放在文件中,tableView中的數據是正確的,但是當我用導航控制器返回到tableView時沒有動畫。

我也試圖把一個的UITableView中的listviewcontroller筆尖文件,但結果都是一樣的 - no行的取消選擇。我也嘗試在viewWillAppear代表中取消選中一行,但indexPath of the indexPathForSelectedRownull

噢,我正在使用一個NSFetchedResultsController。就像我說的 - 獲取的結果是正確的,但它似乎沒有正確地喂到桌面(如果它不合成..)

謝謝!

回答

1

我也許能解決你的行突出的問題,但你需要有一些代碼示例,所以我們可以幫助您與其他項目...

要取消行,你可以調用方法[deselectRowAtIndexPath :animated:]這將允許您在從tableView選擇委託中推送詳細視圖控制器之前或之後取消選擇該行。 Table View Reference

0

感謝您的回覆!

嗯..我可能已經找到了解決方案,但我不知道它是正確的..我在我的新類中實現UITableViewController,但實際上我使用新的UITableView(tableView2)來獲取數據。在創建UITableViewController的nib文件中,將Class name設置爲我的自定義類,但是我沒有將Interface Builder中的Table View與我新創建的tableView2相連接。我希望你能理解..這是相當複雜的,這整個東西:S

所以,如果我得到這個權利 - 如果我實現了一個UITableViewController,我的類會自動獲取self.tableView?但是,就像我在我的問題中所說的,如果我沒有在.m文件中綜合屬性,控制器不能自動取消選擇該行。但是如果我這樣做,數據不正確並且正在重複..也許在cellForRowAtIndexPath中有問題,我從self.tableView得到我的單元格。但它不合邏輯:S

無論如何,現在行取消選擇動畫的作品沒有我的干擾,並且顯示的數據是正確的。我懷疑,如果使用NSFetchedResultsController,UITableViewController有一些其他方法需要被覆蓋。

您認爲我的方法不正確嗎?在我的自定義UITableViewController類中有一個新的UITableView?