返回到应用程序时取消select表视图行

我有一个表视图和其中一个表视图单元格打开另一个应用程序。 当我回到我的应用程序表格视图单元格仍然突出显示。 返回到应用程序时取消select表格视图单元格的最佳方法是什么?

编辑:问题是, -viewWillAppear-viewDidAppear不会从应用程序返回时调用,因为视图已经可见。

在viewDidLoad中设置通知

 final override func viewDidLoad() { super.viewDidLoad() // add notification observers NotificationCenter.default.addObserver(self, selector: #selector(didBecomeActive), name: NSNotification.Name.UIApplicationDidBecomeActive, object: nil) } 

创build方法didBecomeActive

 func didBecomeActive() { if let indexPath = tableView.indexPathForSelectedRow { deselectRow(at: indexPath, animated: true) } } 

UIKit文档

  • UIApplicationDidBecomeActive
  • UITableView – indexPathForSelectedRow
  • UITableView – deselectRow

你有2个select来解决你的问题

选项1

取消selectdidSelectRow方法中的行示例代码

 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { [tableView deselectRowAtIndexPath:indexPath animated:NO]; // Open app code here } 

选项2

find选定的行并取消select行,

将下面的代码放在viewDidAppear方法中

 for (NSIndexPath *indexPath in tableView.indexPathsForSelectedRows) { [tableView deselectRowAtIndexPath:indexPath animated:NO]; }