numberOfRowsInSection返回大于0; cellForRowAtIndexPath仍然没有被调用
我注意到这个问题是非常普遍的,有很多关于它的帖子,但是迄今为止我尝试的解决方案都没有工作。numberOfRowsInSection返回大于0; cellForRowAtIndexPath仍然没有被调用
所以我有一个更新数据源的委托方法:NSArray * posts并重新加载表视图。我肯定的是,在重新调用之前更新了帖子,因为我记录了它。
它调用numberOfRowInSection方法,[posts count]每次返回大于0。但cellForRowAtIndexPath仍然未被调用。
tableview是从IB创建的,内容当前显示内容和单元格之前重新加载。我需要更新一个单元格内容,但它没有调用cellForRowAtIndexPath。
这只发生在委托方法中。
我试图在主线程使用gcd和执行selectorOnMainThread仍然没有去重新调用。
任何想法可能会导致此问题,以及如何解决它?
请确保您的.h文件中包含UITableViewDataSource,UITableViewDelegate,并将.xib中的tableview委托,数据源和cellindentifier Cell连接起来。
你注册了你的手机吗?
[self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"Cell"];
是委托和数据源在IB中设置,并且单元格显示我只需更新一个单元格的内容。对不起,我应该在问题中解释这一点。我刚刚编辑 – marshy101 2014-08-28 14:50:11
你确定你在重新加载之前更新你的NSArray * posts数组吗?另外,我假设你通过return [posts count]设置了numberOfRowsInSection; – Wizkid 2014-08-28 15:06:40
所以问题是你想重新加载单元格?但是你有没有检查你想改变的细胞是这个你得到的?请记住,单元格是可重用的视图。在你尝试编辑当前单元格的那一刻她可以是另一个单元格。 (系统使用该视图来呈现其他视图),但可重用视图的地址仍然相同。 – Shial 2014-08-28 15:07:00
装入的tableView的方法
awakeFromNib
这个解决我的问题。
你是tableview的高度> 0吗?它是否添加到您的视图? – Templar 2014-08-28 14:39:39
是的,我登录了numberOf ..方法和框架内的tableview – marshy101 2014-08-28 14:49:05
添加了一些代码,以便更好地理解.. – Tuhin 2016-09-19 07:41:30