将UISearchController isActive设置为false可以停止搜索

时间:2018-11-15 14:12:05

标签: ios swift uikit segue uisearchcontroller

我正在尝试执行搜索之前关闭搜索控制器。我已将以下代码添加到视图控制器的prepare部分:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
  searchController.isActive = false
}

这在解散搜索控制器时效果很好,但是一旦解散了搜索控制器,segue就不会执行。好像解雇搜索控制器将停止其余的搜索。

有没有其他方法可以消除UISearchController,而又不会调用segue的流程,而仍然调用所有伴随的委托方法?

1 个答案:

答案 0 :(得分:1)

您是通过程序触发还是通过情节提要触发segue?

如果是前者,则应在调用performSegueWithIdentifier:sender:之前通过将该调用移出performSegueWithIdentifier:sender:调用之上和之上的函数来关闭搜索控制器。

如果是后者,而您找不到在其他地方解雇的地方,则可以尝试将解雇移至shouldPerformSegueWithIdentifier:sender: ,尽管您可能会遇到同样的问题。