0

ここから別の質問はhow to next detailView like in Mail-Appです。そこでは、配列でそれを解決する方法を知りたかったのです。coreDataインスタンスをクリック/反復する方法

ここで私はcoreDataを使用しています。 EntityAlphabetという名前のエンティティ(たとえば、5つの属性)があります。属性はここで重要ではありません。 DetailViewでは、このEntityを反復処理します。 どうすればいいですか?

detailViewのエンティティを「切り替え」たいと思っています。

私はtableViewにNSFetchedResultsControllerを設定しています。

答えて

1

私はまったく同じ状況にあり、私はちょうどdetailViewにmanagedObjectsの配列を渡しました。次に、それらが上/下矢印を押して詳細ビューを押すと、配列から適切なオブジェクトを選択します。したがって、あなたが提供したリンクのソリューションと似ています。あなたのdidSelectRowForIndexPathで、オブジェクトの配列を取得するには、次の方法の線に沿って何かを次の操作を行います。

// Assumes your detail view controller has a an NSArray ivar and property setup 
detailViewController.alphabetObjects=[self.fetchedResultsController fetchedObjects]; 

このソリューションは、明らかにローテクと私は理由時点での知識の私の不足、のそれを実装すなわち2数年前。さて、私はそれを行うためのいくつかの追加の方法を考えることができました。

  1. NSFetchedResultsControllerによって管理されているtableViewへのブロックコールバックを利用します。ですから、didSelectRowAtIndexPathメソッドを使用すると、detailViewControllerには基本的にindexPathをとり、NSFetchedResultsControllerから新しいmanagedObjectを返すブロックが提供されます。
  2. tableViewControllerが実装するプロトコルを作成します。プロトコルのさまざまな方法を通じて、detailViewController UIを更新するだけでなく、新しいオブジェクトを要求することができます。すなわち、それがマネージドオブジェクトのセットの最初または最後のオブジェクトであるか否かを問い合わせる。

は、この情報がお役に立てば幸いです。幸運

+0

お返事ありがとうございます。それは私がやりたいやり方のように聞こえる - 一時的。プロトコルについては、私は十分な知識がなく、今週はあまり時間がかかりません。 coreData(EntityAlphabet)のすべてのデータをnasarrayに保存する方法を教えてください。 – brush51

+0

あなたの質問に答えるために私の答えが更新されました。 – timthetoolman

+0

私はすでに[self.fetchedResultsController fetchedObjects]でそれを試しています。 NSLogでは、オブジェクトを取得していますが、配列として保存しています** detailViewController.abcArray = [self.fetchedResultsController fetchedObjects]; **は**空の**です。 detailviewで私はivarとプロパティを設定して、私の間違いを見つけることができません。もう一度あなたの助けに感謝します。 – brush51

0

NSFetchedResultsControllerも同様の方法で使用できます。 - (id)objectAtIndexPath:(NSIndexPath *)indexPathに電話してみてください。 - (IBAction)nextRow:(id) senderに既に使用しているnewIndexPathを渡してください。

関連する問題