所以我试图默认在我的视图第一次加载时选择tableView中的第一行。我正在做这个我的viewWillAppear方法:
NSIndexPath *tempPath= [NSIndexPath indexPathForRow:0 inSection:0];
[theTable.delegate tableView:theTable didSelectRowAtIndexPath:tempPath];
激活方法,但单元格不会保持选中状态。这会触发正确的方法并在那里执行代码,我永远不会取消选择它。用户按下另一个单元格后,它会保持正确选择状态。不是第一次。有谁知道可能导致这种奇怪的原因?我甚至试图这样做:
[[theTable.delegate tableView:theTable cellForRowAtIndexPath:tempPath] setSelected:YES];
思想?
答案 0 :(得分:3)
首先,你不应该直接调用委托方法。
如果确实需要以编程方式选择单元格(如Mail应用程序那样),请使用selectRowAtIndexPath方法:
[theTable selectRowAtIndexPath:tempPath animated:YES scrollPosition:UITableViewScrollPositionBottom];
答案 1 :(得分:1)
根据HIG,您不应该将表格视图单元格保留为选定状态。一旦您执行点击所需的任何操作,我们鼓励(强烈)取消选择该行。
对于持久性选择,您应该使用附件,并且可以将单元格的附件设置为选中标记以指示“已选择”