我正在用SearchController数据实现tableview。在此,单击该搜索结果单元格之后,一旦搜索到特定数据,就可以移动另一个详细信息页面。现在,如果我返回主视图控制器,则搜索控制器显示而不会关闭。我尝试了下面的代码,对于主viewcontroller场景,它的细节工作正常,但是如果我单击没有搜索文本的单元格,则会使其崩溃。如何解决?

    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

  let section = isFiltering ? filteredSections[indexPath.section] : sections[indexPath.section] // without search text I am getting index out of range issue
        let item = section.result[indexPath.row]

                let detailsVC = self.storyboard?.instantiateViewController(withIdentifier: "detailviewcontroller") as! DetailViewController
                let navigationController = UINavigationController(rootViewController: detailsVC)
                self.present(navigationController, animated: true, completion: nil)


            // Search Dismiss - without search text if click tableview cell I am getting crash
            // MARK: Validate SearchController isActive or Not.
        if searchController != nil {
            // Get rid of searchController
            searchController.searchBar.endEditing(true)
            searchController.isActive = false
            searchController.dismiss(animated: true) { /* */ }
        }
        }

最佳答案

可能是因为您的searchController尚未启动。只需先检查searchController != nil

关于ios - 在使用Swift单击UITableview单元格之前如何检查SearchController是否处于事件状态,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57802372/

10-10 21:12