我正在用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/