我有完全相同的情況,我只是將一個managedObjects數組傳遞給detailView。然後,根據他們在細節視圖上按下的向上/向下箭頭,我從數組中選擇適當的對象。因此,它與您提供的鏈接中的解決方案類似。要獲取對象的數組,你didSelectRowForIndexPath:方法做沿東西線以下:
// Assumes your detail view controller has a an NSArray ivar and property setup
detailViewController.alphabetObjects=[self.fetchedResultsController fetchedObjects];
該解決方案是決定性的技術含量低,我實現了它,因爲我缺乏知識的時候,也就是2多年前。現在,我可以想到一些其他的方法。
- 將塊回調用於由NSFetchedResultsController管理的tableView。所以,當你使用didSelectRowAtIndexPath方法時,你應該爲detailViewController提供一個基本上需要indexPath的塊,並從NSFetchedResultsController返回新的managedObject。
- 創建一個tableViewController實現的協議。通過協議的各種方法,您可以請求新對象以及更新detailViewController UI。即查詢它是否是managedObjects集合中的第一個或最後一個對象。
希望這會有所幫助。祝你好運
謝謝你的答案。這聽起來像我想要做的 - 暫時。對於一個協議,我沒有足夠的知識,本週沒有多少時間。你能告訴我如何將我的數據從coreData(EntityAlphabet)保存到一個陣列中嗎? – brush51
更新了我的回答來回答你的問題。 – timthetoolman
我已經用[self.fetchedResultsController fetchedObjects]試過了。在NSLog中,我得到的對象,但保存爲數組在** detailViewController.abcArray = [self.fetchedResultsController fetchedObjects]; **是**空**。在詳細視圖中,我設置了伊娃和財產,無法找到我的錯誤。再次感謝你的幫助。 – brush51