当navigationController弹出视图时,取消选择所选单元格的内容是什么?

时间:2011-01-21 10:38:07

标签: uitableview uinavigationcontroller

apple提供的默认NavigationController模板,它有一个navigationController和一个表。

如果您选择一个单元格,新视图将被推送到navigationController中,如果您弹出视图,所选单元格将自动取消高亮显示。

但是表怎么知道什么时候去高亮它以及它如何知道选择哪个单元?

还是只是重新加载所有数据?

2 个答案:

答案 0 :(得分:6)

  

表如何知道何时去除高亮

您可以在选择处理程序中取消选择您的单元格:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    [tableView deselectRowAtIndexPath: indexPath];
    ...
}

或重置控制器的-viewWillAppear:方法

中的选择
  

以及如何知道选择了哪个单元?

UITableView具有以下方法来获取所选行的indexPath:

- (NSIndexPath *)indexPathForSelectedRow

答案 1 :(得分:0)

适用于Swift 3.0

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(true)
    if self.yourTableView.indexPathForSelectedRow != nil
    {
        self.yourTableView.deselectRow(at: self.yourTableView.indexPathForSelectedRow!, animated: true)
    }
}

此代码也可以避免崩溃 ......

此外,在选择TableViewCell时,您在其他ViewController中添加以下行。

self.navigationController?.interactivePopGestureRecognizer?.isEnabled = true

像Charm =]

一样工作

希望有所帮助......