2012-11-30 43 views
0

我有点重新加载我的tableView在UIViewController中设置的麻烦。ios - reloadData TableView和核心数据

  • 它填充了CoreData(这工作)
  • 它也有一个自定义的TableViewCell一些设计目的

现在通常我会用的就是这个:[_mainTableView reloadData];

那这次不工作。

这是因为自定义单元或是核心数据的FetchRequest加载罚款最初并显示数据时,我重新启动应用程序?

我已经看到了关于SO和Google的几个问题和教程,但他们都没有在我的案例中工作。

我也探索这些方法:

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

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

这里找到:beignUpdates

任何建议表示赞赏。

+0

因此,您已验证更新的数据来自核心数据,但它没有进入tableview,是否正确? –

+0

是的正确:-)我已经通过重新启动它并在Firefox中使用SQLite插件检查了应用程序 –

+0

你在哪里调用reloadData? –

回答

0

谢谢你的输入,我终于把它分类了。

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

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

[self setupFetchedResultsController]; 
0

你合成了你的表格视图吗?请试试这个:

[self.mainTableView reloadData];

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

_mainTableView.delegate = nil; _mainTableView.delegate =自我; //同样,对于数据源...

而且,你需要显式调用你的viewWillAppear中(我假设你已经这样做了。)

请让我知道任何关心。

谢谢。