0

2 つのセクションを持つ tableView コントローラーがあります。最初のセクションにはいくつかの入力フィールドがあり、コア データは実際には表示されていません。2 番目のセクションには、Core Data で保存されたデータベースのアイテムが表示されます。

私は を持っており、次のようにとのNSFetchedResultsControllerデータを提供しています。セクション = 0 の場合、適切な入力フィールドを手動で提供し、セクション = 1 の場合は を使用します。() ただし、フェッチされた結果のコントローラーは 1 つのセクションしか認識していないため、これは機能しません。cellForRowAtIndexPathdidSelectRowAtIndexPath[fetchedResultsController objectAtIndexPath:indexPath]

セクション = 0 で新しい IndexPath を作成し、それをNSFetchedResultsController. それが望ましい解決策NSFetchedResultsControllerですか、それとも何を期待するかを「伝える」別の方法はありますか?

4

2 に答える 2

1

なぜあなたはそれに何かを言う必要があるのですか?デリゲートメソッドでは、セクションインデックスを1つオフセットするだけで、問題はありません。

この問題を解決するためNSIndexPathにに渡す独自のインスタンスを作成できます。NSFetchedResultsController

アップデート

2つのセクションが必要な場合は、そうです。それが正しい答えです。ただし、入力フィールドをセクションではなくテーブルヘッダーに配置することを検討します。私の意見では、それはより明確な答えになるでしょう。

于 2010-06-30T03:22:47.613 に答える
1

これを行う唯一の方法は、さまざまな/メソッドにNSIndexPath渡されたオブジェクトを、.xml ファイルに適したインデックス パスに変換することです。これを行うメソッドをクラスに追加することをお勧めします。UITableViewDataSourceUITableViewDelegateNSFetchedResultsController

このメソッドからの戻り値は、NSFetchedResultsController使用するセクション番号と一致します。また、将来、何らかの理由で 2 番目のヘッダー セクションが必要になった場合でも、メソッドを調整するのは簡単です。

于 2010-06-30T14:46:15.483 に答える