tableView中的deselectRowAtIndexPath问题

时间:2009-12-10 17:32:06

标签: iphone cocoa-touch

我有一个包含几行文字的单元格,在选中/突出显示时会改变颜色。问题在于,当正在推送新的viewController时,会发生取消选择动画,当文本突然恢复到未选择状态时,这会在视觉上分散注意力。我已经在推送新视图控制器的行之后移动了deselectRowAtIndexPath语句,但这没有效果。

如何防止用户看到单元格取消选择(未实现计时器)?任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:9)

如果您使用UITableViewController,则无需致电deselectRowAtIndexPath:。当您的表视图再次可见时,将自动为您完成此操作。

如果您没有使用UITableViewController,因为您的界面更复杂,则需要从deselectRowAtIndexPath:方法手动调用viewWillAppear:animated:

答案 1 :(得分:7)

我认为用于表视图和推送新VC的一般范例是您在viewWillAppear:animated方法中取消选择表格行。然后,当弹出VC时,他们会看到哪一行已用于导航到该VC。

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];

    [self.myTableView deselectRowAtIndexPath:[myTableView indexPathForSelectedRow] animated:YES];

}

所以请从您的didSelectRowAtIndexPath方法中删除deselectRow。