2014-08-28 41 views
0

我注意到这个问题是非常普遍的,有很多关于它的帖子,但是迄今为止我尝试的解决方案都没有工作。numberOfRowsInSection返回大于0; cellForRowAtIndexPath仍然没有被调用

所以我有一个更新数据源的委托方法:NSArray * posts并重新加载表视图。我肯定的是,在重新调用之前更新了帖子,因为我记录了它。

它调用numberOfRowInSection方法,[posts count]每次返回大于0。但cellForRowAtIndexPath仍然未被调用。

tableview是从IB创建的,内容当前显示内容和单元格之前重新加载。我需要更新一个单元格内容,但它没有调用cellForRowAtIndexPath。

这只发生在委托方法中。

我试图在主线程使用gcd和执行selectorOnMainThread仍然没有去重新调用。

任何想法可能会导致此问题,以及如何解决它?

+0

你是tableview的高度> 0吗?它是否添加到您的视图? – Templar 2014-08-28 14:39:39

+0

是的,我登录了numberOf ..方法和框架内的tableview – marshy101 2014-08-28 14:49:05

+0

添加了一些代码,以便更好地理解.. – Tuhin 2016-09-19 07:41:30

回答

0

请确保您的.h文件中包含UITableViewDataSource,UITableViewDelegate,并将.xib中的tableview委托,数据源和cellindentifier Cell连接起来。

你注册了你的手机吗?

[self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"Cell"]; 
+0

是委托和数据源在IB中设置,并且单元格显示我只需更新一个单元格的内容。对不起,我应该在问题中解释这一点。我刚刚编辑 – marshy101 2014-08-28 14:50:11

+0

你确定你在重新加载之前更新你的NSArray * posts数组吗?另外,我假设你通过return [posts count]设置了numberOfRowsInSection; – Wizkid 2014-08-28 15:06:40

+0

所以问题是你想重新加载单元格?但是你有没有检查你想改变的细胞是这个你得到的?请记住,单元格是可重用的视图。在你尝试编辑当前单元格的那一刻她可以是另一个单元格。 (系统使用该视图来呈现其他视图),但可重用视图的地址仍然相同。 – Shial 2014-08-28 15:07:00

0

装入的tableView的方法

awakeFromNib 

这个解决我的问题。

相关问题