0

NSFetchedResultsControllerに支えられたメインのUITableViewコントローラーがあります。このビューには、時刻ごとにセクション化された結果のリストが表示されます。このビューは、NSFetchedResultsControllerの述部のカテゴリーとさまざまなフラグを決定するセグメント化されたコントロールによって管理されます。これまでのところすべてが良さそうです。

しかし、詳細ビューに問題があります。

デフォルトのiOSメールアプリと同じように、ユーザーが詳細ビューで次と前に移動できるようにしたいと思います。

私のセットアップでそのようなことをどのように達成しますか?前のリストビューはいくつかのフィルター述語に依存しているため、エンティティを詳細ビューに渡してIDをインクリメント/デクリメントすることはできないと思います。

同様の述語を使用して、詳細なコントローラーで別のnsfetchedresultsコントローラーを作成する必要がありますか?前/次のボタンをグレー表示できるように、現在の結果の後/前にこれ以上ないかどうかを効率的に検出するにはどうすればよいですか?

バッチ処理およびセクション化されている場合でも、メインリストビュー(nsfcでバックアップ)によって既に返された結果セットを何らかの方法で利用できますか?

これに私の脳を包むための助けをありがとう。

4

1 に答える 1

1

NSFetchedResultsController私が最初に考えたのは、詳細表示のために選択された最新の項目のインデックス パスを記憶するようにサブクラス化することです。(id)nextObject(BOOL)nextExists、および「前」の同様のメソッドなどを実装できます。

テーブルビューコントローラーから詳細コントローラーに参照を渡すと、そこで前後のことを行うことができ、現在の詳細インデックスパスを使用してセルを選択することにより、戻ったときにテーブルで選択したエントリを同期することもできます。

sections唯一の本当のトリックはインデックス パスの算術演算ですが、これは の配列を調べることで実行できるはずNSFetchedResultsControllerです。

于 2012-08-10T23:21:54.817 に答える