返回应用程序时取消选择表视图行

时间:2017-02-26 19:36:03

标签: ios uitableview

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

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

2 个答案:

答案 0 :(得分:1)

在viewDidLoad中设置通知

final override func viewDidLoad() {
    super.viewDidLoad()

    // add notification observers
    NotificationCenter.default.addObserver(self, selector: #selector(didBecomeActive), name: NSNotification.Name.UIApplicationDidBecomeActive, object: nil)
}

创建方法didBecomeActive

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

UIKit文档

答案 1 :(得分:1)

您有2个选项可以解决您的问题

选项1

取消选择didSelectRow方法中的行 示例代码

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

选项2

查找所选行并取消选择行

将以下代码放在 viewDidAppear 方法

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