我正在使用xib加载UITableViewController
中的单元格。按下单元格上有一个按钮,弹出一个模态,当我们在该模态上点击某些内容时,我想更改单元格中的图像。但即使我传递indexPath,我也无法获取单元格。
我使用了以下代码:
NSIndexPath* indexPath1 = [NSIndexPath indexPathForRow:sender inSection:0];
[self.tableView2 reloadRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath1, nil] withRowAnimation:UITableViewRowAnimationNone];
我已在cellForRowAtIndexPath
中编写了如下代码:
if([[feedbackDictionary objectForKey:[NSString stringWithFormat:@"Key%li",indexPath.row]] isEqualToString:[NSString stringWithFormat:@"%li",indexPath.row]])
{
NSLog(@"Yay! Feedback");
cell.checkmark.image=[UIImage imageNamed:@"tick"];
}
else
{
NSLog(@"Oops! No feedback");
cell.checkmark.image=[UIImage imageNamed:@"orangetick"];
}
我假设当reloadrows
运行时,它会通过调用cellForRowAtIndexPath
重新加载该特定单元格。但它没有任何帮助。图像根本没有变化。
其次,我尝试使用以下
来获取单元格 NSIndexPath *ip=[NSIndexPath indexPathForItem:button.tag inSection:0];
ExpandingCell *cell=(ExpandingCell*) [_tableView2 cellForRowAtIndexPath:ip];
if(cell==nil)
{
NSLog(@"No cell");
}
我没有输出任何单元格。请帮忙。
答案 0 :(得分:0)
首先,要调试它,请尝试调用[self.tableView2 reloadData]
。如果您的图像被更改,则意味着您为reloadRowsAtIndexPaths
方法调用了错误的indexPath。
另外button.tag
可能会返回错误的标记,因为单元格在UITableView中是可重用的,并且它可以是之前已经使用过的单元格。
答案 1 :(得分:0)
我找到了问题并修复了它。问题是当模态弹出时,它失去了对视图控制器的控制,这就是为什么tableview为空并且没有任何改变的原因。