Ios 容器视图控制器中的tableviewcontroller:以编程方式选择uitableviewcell,高亮显示闪烁

Ios 容器视图控制器中的tableviewcontroller:以编程方式选择uitableviewcell,高亮显示闪烁,ios,uitableview,containment,Ios,Uitableview,Containment,我试图通过编程突出显示一个表视图单元格,并通过执行以下操作触发选择逻辑 NSIndexPath*indexPath = [NSIndexPath indexPathForRow:0 inSection:0]; [self.tableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone]; [self tableView:self.tableView didSelec

我试图通过编程突出显示一个表视图单元格,并通过执行以下操作触发选择逻辑

NSIndexPath*indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
[self.tableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];
[self tableView:self.tableView didSelectRowAtIndexPath:indexPath];
该行仅在瞬间高亮显示。我希望它保持高亮显示,直到我选择另一行

我试着添加这些行

UITableViewCell *cell = [self.tableView cellForRowAtIndexPath: indexPath];
cell.highlighted = YES;
但是当我这样做的时候,即使我点击了另一行,高光仍然存在,直到我再次点击第一行,高光才消失


有什么想法吗?

尝试调用selectRowAtIndexPath,但不要调用didSelectRowAtIndexPath。我认为后者是前者的结果。如果您的学员取消选择了DidSelectRowatineXpath中最后一个选定的索引路径,则双重调用将导致取消选择您刚才选择的索引路径

尝试调用SelectRowatineXpath,而不是DidSelectRowatineXpath。我认为后者是前者的结果。如果您的代理取消选择DidSelectRowatineXpath中最后一个选定的索引路径,则双重调用将导致取消选择您刚才选择的索引路径

问题似乎是因为我从viewDidLoad调用代码,我将其移动到ViewDidDisplay,现在它的精细部分似乎是因为我从viewDidLoad调用了代码,我将其移动到ViewDidDisplay,现在它的精细部分应该提到的是,表视图控制器包含在容器视图控制器中,似乎这可能会影响高亮显示,不确定为什么我将调用代码移动到ViewDidDisplay,似乎只是在viewDidLoad中出现了问题,这似乎解决了问题Eyeah您不应该在viewDidLoad中选择单元格…我应该提到的一点是,表视图控制器包含在容器视图控制器中,似乎这可能会影响高亮显示,不确定我为什么将调用代码移动到viewDidAppear,似乎只是在viewDidLoad中有问题,这似乎解决了问题Eyeah您不应该在viewDidLoad中选择单元格…谢谢,但这没有解决问题,我添加了另一条关于表视图控制器包含在另一个视图控制器中的注释,我想知道这是否是导致问题的原因。您可以发布相关代码吗?你是在使用故事板还是nib?现在似乎正在工作,我认为关键是tableviewcontroller显示在另一个容器视图控制器中,最初我只是从容器中的viewDidLoad调用上面的代码,之后一定发生了什么事情来清除选择。我将其更改为调用viewDidAppear中的代码,现在是OK谢谢,但这并没有解决它,我添加了另一条关于表视图控制器包含在另一个视图控制器中的注释,我想知道这是否是导致问题的原因您可以发布相关代码吗?你是在使用故事板还是nib?现在似乎正在工作,我认为关键是tableviewcontroller显示在另一个容器视图控制器中,最初我只是从容器中的viewDidLoad调用上面的代码,之后一定发生了什么事情来清除选择。我将其更改为从ViewDidDisplay调用代码,现在可以了