【问题标题】:UITableCell - How do I turn off the selected state of the cell when user navigates back to view?UITableCell - 当用户导航回视图时,如何关闭单元格的选定状态?
【发布时间】:2011-03-17 09:58:03
【问题描述】:
我认为这是一种很常见的情况,但我找不到其他人是如何解决这个问题的。
我有一个 UITableView,当用户点击一个单元格时,我会在堆栈上推送一个新的视图控制器(使用 UINavigationController)。当用户点击导航栏上的“返回”时,单元格仍显示为选中状态(即蓝色背景)。
我希望在用户点击单元格时背景最初为蓝色,但在页面再次显示时关闭。
【问题讨论】:
标签:
iphone
objective-c
xcode
ios
uitableview
【解决方案1】:
您可以在推送新视图控制器之前或之后取消选择单元格。
- (void)tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
[aTableView deselectRowAtIndexPath:indexPath animated:YES];
// create and push new viewController
}
【解决方案2】:
有两种方法可以做同样的事情:
在视图中重新加载整个表格都会出现
-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[YourTableView reloadData];
}
要么
-(void)tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
[YourTableView deselectRowAtIndexPath:indexPath animated:YES];
}
从性能方面考虑第二个是最好的解决方案。