我有一个管理表视图的视图控制器。我的理解是,如果我按下另一个视图控制器然后弹回到表视图,将自动取消选择表格单元格。
但是,在同一个类中(我使用了几次),当取消选择单元格但没有动画时,会有一个类的实例(它只会变为蓝色,然后在没有动画的情况下恢复正常)。为什么会这样?我有这个类的一些实例,但它只发生在其中一个。可能导致这种情况的原因是什么?
答案 0 :(得分:2)
根据我的经验,如果您按下/弹出一个视图控制器(至少在使用导航控制器时没有),则不会自动取消选择单元格,除非您添加一些代码,请取消选择它! 如果您在viewWill / DidAppear中执行[tableView reloadData](或在这些方法中启动的进程中),它也可能会自动取消选择。
您是否尝试在viewDidAppear中添加类似内容?
NSIndexPath *indexPath = [tableView indexPathForSelectedRow];
if (indexPath != nil) {
[tableView deselectRowAtIndexPath:indexPath animated:YES]
}
答案 1 :(得分:2)
NSIndexPath *indexPath = [tableView indexPathForSelectedRow];
if (indexPath != nil) {
[tableView deselectRowAtIndexPath:indexPath animated:YES]
}
答案 2 :(得分:0)
您可以重新加载Tableview。
在你的viewWillAppear
中[yourTableView reloadData];
或者如果你不想打扰你的数据源,试试这个
NSArray *array = [yourTableView visibleCells];
for(UITableViewCell *cell in array)
{
cell.selected = NO;
}