1

我正在使用NSFetchedResultsController它的委托来填充tableview来自核心数据托管对象的数据,如此处所述

但是,我还没有找到一种方法来做一些不同的事情:我需要表格的第一部分有一些自定义的静态内容,而表格的第二部分应该将内容NSFetchedResultsController对象数组接收到它的行中。

我怎样才能明确告诉我NSFetchedResultsController将它获取的所有内容放入第 1 部分而不是 0?

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 回答