apple提供的默认NavigationController模板,它有一个navigationController和一个表。
如果您选择一个单元格,新视图将被推送到navigationController中,如果您弹出视图,所选单元格将自动取消高亮显示。
但是表怎么知道什么时候去高亮它以及它如何知道选择哪个单元?
还是只是重新加载所有数据?
答案 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 =]
一样工作希望有所帮助......