因此,我尝试默认为在第一次加载视图时在tableView中选择第一行。我正在这样做我的viewWillAppear方法:

NSIndexPath *tempPath= [NSIndexPath indexPathForRow:0 inSection:0];

[theTable.delegate tableView:theTable didSelectRowAtIndexPath:tempPath];

这将触发该方法,但单元格不会保持选中状态。这将触发适当的方法并在其中执行代码,而我绝不会取消选择它。用户按下另一个单元格后,它将保持选中状态。但这不是第一次。有谁知道是什么原因导致这种怪异?我什至尝试这样做:
[[theTable.delegate tableView:theTable cellForRowAtIndexPath:tempPath] setSelected:YES];

有什么想法吗?

最佳答案

首先,您不应该那样直接调用委托方法。

如果确实需要以编程方式选择一个单元格(如Mail应用程序一样),请使用selectRowAtIndexPath方法:

[theTable selectRowAtIndexPath:tempPath animated:YES scrollPosition:UITableViewScrollPositionBottom];

关于iphone - iPhone didSelectRowAtIndexPath不触发,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4080789/

10-10 20:51