我正在使用 NSFetchedResultsController 填充 UITableViewController,结果创建填充节标题和节索引的节。我正在使用以下方法来填充部分索引:
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView {
return [fetchedResultsController_ sectionIndexTitles];
}
现在我遇到了一个问题。当我将新元素添加到与 NSFetchedResultsController 关联的 NSManagedObjectContext 时,新元素将被保存并适当地显示为 UITableView 中的单元格......除了一件事。如果新元素创建了一个新的 SECTION,则新的部分索引不会显示在右侧边距中,除非我弹出 UINavigationController 的堆栈并重新加载 UITableViewController。
我已经符合 NSFetchedResultsControllerDelegate 的接口并手动调用
[self.tableView reloadSectionIndexTitles];
在这两个委托方法的末尾:
controller:didChangeSection...
controller:didChangeObject...
虽然我可以调试并跟踪方法的执行并查看调用的重新加载调用,但 UITableView 的部分索引从不反映部分更改。
再次显示数据——新部分在 UITableView 中物理可见(或删除),但部分索引未更新。
我错过了什么吗?