返回到应用程序时取消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]; }