从其他viewcontoller调用loadData方法,如:
TestTVC *testTVC = [[TestTVC alloc] init];
[testTVC loadData];
我将NSLog(@"testTVC Array section:%lu has %lu rows ")
放在numberOfRowsInSection中,它返回结果。
但是在cellForRowAtIndexPath部分中,NSLog(@"cellForRowAtIndexPath")
从未以某种方式打印过。
我确信我的委托和数据源设置正确。因为它适用于[self loadData]
我也尝试在主线程中运行它,它确实无法正常工作。
有谁知道吗?感谢。
已更新:我使用了[self.tableView reloadRowsAtIndexPaths:[self.tableView indexPathsForVisibleRows] withRowAnimation:UITableViewRowAnimationNone];
而不是[self.tableView reloaddata]
,它可以正常运行,但它没有在表格单元格中重新加载UIImages。
NSLog(@"change cell image to testTVCImg1");
[testTVCCell.selectImgView setImage:[UIImage imageNamed:@"testTVCImg1"]];
打印了NSLog调试消息,但图像没有改变。
答案 0 :(得分:0)
cellForRowAtIndexPath
。
当你这样做时
TestTVC *testTVC = [[TestTVC alloc] init];
[testTVC loadData];
testTVC不在视图层次结构及其tableview中。因此cellForRowAtIndexPath
不会被调用。