0

我在重新加载在 UIViewController 中设置的 tableView 时遇到了一些麻烦。

  • 它填充了CoreData(这有效)
  • 它还有一个用于某些设计目的的自定义 TableViewCell

现在通常我会使用的是:[_mainTableView reloadData];

这次不行。

这是因为自定义 Cell 还是 Core Data 的 FetchRequest 最初加载良好并在我重新启动应用程序时显示数据?

我已经看过一些关于 SO 和 Google 的问题和教程,但它们似乎都不适用于我的情况。

我也探索了这些方法:

- (void)controllerWillChangeContent:(NSFetchedResultsController *)controller
{
    [self.tableView beginUpdates];
}

- (void)controllerDidChangeContent:(NSFetchedResultsController *)controller
{
    [self.tableView endUpdates];
}

在这里找到:beignUpdates

任何建议表示赞赏。

4

2 回答 2

0

你有没有合成你的表格视图?请试试这个:

[self.mainTableView reloadData];

希望,它会工作。而且,由于您在 viewWillAppear 重新加载它,请确保它既不会分配新时间,也不会再次分配委托/数据源,如果是,那么第一次做这样的事情:

_mainTableView.delegate = nil; _mainTableView.delegate = self;//同理,对于数据源...

而且,您需要显式调用您的 viewWillAppear(我想您已经在这样做了。)

如有任何疑问,请告诉我。

谢谢。

于 2012-11-30T04:07:56.597 回答
0

谢谢你的输入,我终于把它整理好了。

[_mainTableView reloadData]我不得不再次调用 fetchmethod而不是调用。

    if (_managedObjectContext == nil)
{
    _managedObjectContext = [(AppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext];
    NSLog(@"After _managedObjectContext: %@", _managedObjectContext);
}

[self setupFetchedResultsController];
于 2012-11-30T04:17:13.853 回答