问题:tableView需要显示的数据内容是网络请求过来的,tableView是另外写在UIView中,不在控制器里面,所以我在UIView里面加了接口,并且在视图控制器里请求到数据后传回给tableView。
调用接口的时候我实例化了tableView的一个类。
结果cellForRowAtIndexPath在刷新的时候不会被调用,表格虽然有,但内容显示为空。
然后我就在拿到数据后执行reloadData,刷新表格。结果还是空。
cellForRowAtIndexPath在刷新时没有被调用这个问题我网上查了下,可能原因比较多,有几个被提到比较多的如下:
// 1.numberOfSectionsInTableView的返回值为0
// 2. _tableView.delegate = self;
// _tableView.dataSource = self;未设置
// 3.表格的边框没有约束
// 4.reload的时候表格没有在当前页面显示
// 5.reload未在主线程执行
// 6.reload时未调用所有绘制该表格的函数,例如修改背景颜色
很可惜,最终我的问题不是上面任意一个,
原因在于我请求数据的视图实例化的时候并不是当前显示的视图,最后我用当前显示的视图去调用接口,成功。