UITableView:切换回视图后突出显示的单元格

Mat*_*ias 3 iphone objective-c uitableview

我正在使用UINavController和一些UITableViews来显示某种数据的向下钻取(例如,像Contact App).效果很好.我唯一的问题是,当我在第一个表格视图中选择一个单元格时,它会突出显示,然后视图切换到下一个级别,然后,如果我返回到第一个级别,单元格仍然会突出显示.那么,如何在切换回时重置突出显示?

dra*_*ard 7

在表视图的控制器中执行:

-(void) viewWillAppear:(BOOL)inAnimated {
    NSIndexPath *selected = [self.table indexPathForSelectedRow];
    if ( selected ) [self.table deselectRowAtIndexPath:selected animated:NO];
}
Run Code Online (Sandbox Code Playgroud)

或者,您可以在tableView:didSelectRowAtIndexPath:推动下一个控制器的位置右侧取消选择所选行.

  • 建议的方法是在viewWillAppear中执行此操作:就像您建议的那样.这为用户提供了他们来自哪个单元的视觉提醒.请注意,如果从UITableViewController继承,则可以免费获得此行为.UITableViewController做的另一件事你应该做的是在viewDidAppear中调用[tableView flashScrollIndicators]:因此,如果表视图的项目数多于屏幕上显示的项目,则还会给用户提供视觉提示. (3认同)

zon*_*ble 5

另一种方法是在选择单元格时取消选择单元格.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}
Run Code Online (Sandbox Code Playgroud)