我通过UITableViewController
if ([segue.identifier isEqualToString:@"groupInitialSelect"]) {
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:self.lastIndexPath];
cell.accessoryType = UITableViewCellAccessoryNone;
[self.tableView scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:YES];
[self.tableView reloadData];
TTPDepartment *dep = [self.departmentList objectAtIndexedSubscript:self.lastIndexPath.row];
TTPGroupViewController *controller = [segue destinationViewController];
controller.selectedDepartment = dep;
}
当我执行segue并返回时,我看到仍然检查了单元格。奇怪的是,scrollRectToVisible
在同一时间滚动回到顶部。
self.lastIndexPath
:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;
{
self.lastIndexPath = indexPath;
self.nextButton.enabled = YES;
[tableView reloadData];
}
我检查cellForRowAtIndexPath
中的列表元素:
if ([indexPath compare:self.lastIndexPath] == NSOrderedSame)
{
cell.accessoryType = UITableViewCellAccessoryCheckmark;
}
else
{
cell.accessoryType = UITableViewCellAccessoryNone;
}
答案 0 :(得分:1)
因此,您要为最后选择的单元格设置accessoryType
为无,然后致电reloadData
,但在cellForRowAtIndexPath
中lastIndexPath
仍在同样的,你设置复选标记。
在致电lastIndexPath
之前尝试设置为nil reloadData
。