我见过人们这样做的方式不同,我希望当您在UITableView
(例如在屏幕 A 中)选择一个项目时,该项目被突出显示(选择),另一个屏幕 B 被推送到导航堆栈,然后当您返回时从屏幕B到屏幕A,之前选择的项目将被动画取消选择,所以你要做的是放:
[self.tableView deselectRowAtIndexPath:[self.tableView indexPathForSelectedRow] animated:YES];
里面:
- (void)viewWillAppear:(BOOL)animated;
这就是 Apple 的示例代码所做的。但是我看到很多人在选中该行后立即取消选择该行:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
我知道这可能只是个人喜好,但我想知道官方对此有什么澄清吗?取消选择viewWillAppear:
让用户知道他/她之前选择的项目,这是一个奖励,但是对于某些自定义单元格,选择的背景/视图可能不仅仅是纯色,他们可能会在单元格中添加一个 UIView 来表示选择的状态,如果一些单元格被动画取消选择,而一些单元格在没有动画的情况下被选中,这会使应用程序不一致。
有谁有想法吗?