2

CoreDataとResultsControllerは、仕事を簡単にします。しかし...ここでResultsControllerから別のResultsControllerへ

は状況です:

私は1つのtableViewで機能resultsControllerを持っています。行を選択すると、子エンティティを表示する別のtableViewに行きます。 coreDataを使用すると、子エンティティはすぐに使用できます。しかし、この子エンティティで別のresultsControllerを開始するにはどうすればよいですか?この新しいresultsControllerのために述語を使ってフィルタリングするためにfetchRequestを再度必要としますか?

親TablewView:選択行resultsController オン - >子テーブルビュー:エンティティからinitが受信され、別のresultsController のinit - 子テーブルビューの> DESC:第二RCに選択された行からのショーの詳細を。

良い方法がありますか?

答えて

1

2番目のUITableViewが1 NSManagedObjectの詳細を提示しているだけの場合は、なぜresultsControllerを作成するのですか? NSManagedObjectへのポインタを新しいTableViewに渡し、それをUITableViewDataSourceprotocol methodに表示して処理します。
NSArrayの各行に必要な要素を並べ替えて、より短い- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPathの実装にすることができます。
NSArrayは、TableViewが最初に自身を表示する前に実行する必要があります。

+0

しかし、2番目のUITableViewは、詳細UIViewで行われた変更を表示しますか?たとえば:最初のUITableViewはレシピを、2番目のメニューは成分を、3番目のUIViewは成分の詳細を表示します。成分名を変更した場合、2番目のUITableViewは直接resultsControllerなしでこれを表示しますか? – pablotj

+0

@pablotjもしあなたがNSMagnagedObjectを渡しているなら、それを変更してコンテキストに変更を保存すると、UITableViewコントローラに戻ったときにデータをリロードする必要があります。 viewWillAppearでリロードします。 –

+0

しかし、私はResultsControllerlerが与えるメモリコントロールを失います。他のRSからresultsControllerを初期化することは可能ですか?これを行う唯一の方法は通常のinitですか? – pablotj

関連する問題