1

here で説明されているようNSFetchedResultsControllerに、 とそのデリゲートを使用しtableviewて、コア データ管理オブジェクトからのデータを に取り込みます。

ただし、少し異なることを行う方法はまだ見つかりませんでした。テーブルの最初のセクションにカスタムの静的コンテンツを含める必要があり、テーブルの 2 番目のセクションはコンテンツNSFetchedResultsControllerオブジェクト配列をその行に受け取る必要があります。

NSFetchedResultsControllerフェッチしたすべてのものを0ではなくセクション1に入れるように具体的に指示するにはどうすればよいですか?

4

2 に答える 2

3

データ ソースを操作しようとするのではなく、 に送信するものを変更しますUITableView。たとえば、セクションの数を要求する場合は、1 + フェッチされた結果コントローラーによって報告されたセクションの数を返します。セルを要求する場合は、セクション 0 にいるかどうかを確認し、特殊なケースにします。

一般に、MVC での職務の分離とは、コントローラーがモデルではなくカスタム コンテンツの提供を担当する必要があることを意味します。モデルは、そのデータがどのように表示されるべきかについての知識を持っていてはなりません。このようにして、醜いソリューションをハックすることなく、同じデータを複数の方法で提示できます。

于 2013-03-06T23:24:17.483 に答える
1

静的コンテンツが十分に単純な場合は、すべてを (セクション 0 ではなく) ヘッダーに貼り付けることもできます。

- (void)viewDidLoad
{
    UIView *header = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 400)];
    // add labels, buttons, etc to header
    // ...
    self.tableView.tableHeaderView = header;
}
于 2013-03-07T00:17:41.610 に答える