将 UISearchController isActive 设置为 false 停止 segue

Setting UISearchController isActive to false stops segue

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

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

这在关闭搜索控制器时工作得很好,但是一旦搜索控制器被关闭,segue 就不会执行。就好像关闭搜索控制器会停止其余的 segue。

是否有不同的方法来关闭 UISearchController,它不会中断 segue 的流程,同时仍然调用所有伴随的委托方法?

您是以编程方式还是通过情节提要来触发 segue?

如果是前者,您应该在调用 performSegueWithIdentifier:sender: 之前关闭搜索控制器,方法是将该调用移出 performSegueWithIdentifier:sender: 调用上方的函数。

如果是后者,而你在其他地方找不到关闭它的地方,你可以尝试将关闭移动到 shouldPerformSegueWithIdentifier:sender: 尽管您可能 运行 遇到同样的问题。