0

これは、私からのメールアプリのような次の詳細ビューへの方法に関する別の質問です。そこで、それを配列で解決する方法を知りたかったのです。

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

detailView でエンティティを「切り替え」たい。

ところで: tableView に NSFetchedResultsController を設定しています。

4

2 に答える 2

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 を更新したりできます。つまり、一連の managedObjects の最初または最後のオブジェクトであるかどうかを照会します。

お役に立てれば。幸運を

于 2011-12-06T18:06:16.920 に答える
0

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

于 2011-12-06T17:19:59.513 に答える