将 UISearchController isActive 设置为 false 停止 segue

Posted

技术标签:

【中文标题】将 UISearchController isActive 设置为 false 停止 segue【英文标题】:Setting UISearchController isActive to false stops segue 【发布时间】:2018-11-15 14:12:04 【问题描述】:

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

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

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

是否有其他方法可以解除UISearchController,它不会中断segue 的流程,同时仍会调用所有随附的委托方法?

【问题讨论】:

【参考方案1】:

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

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

如果后者并且您无法在其他地方找到将其解雇的地方,您可以尝试将解雇转移到shouldPerformSegueWithIdentifier:sender: ,尽管您可能会在那里遇到同样的问题。

【讨论】:

以上是关于将 UISearchController isActive 设置为 false 停止 segue的主要内容,如果未能解决你的问题,请参考以下文章

将 UISearchController 与 UINavigationController 一起使用

如何将 segmentedControl 和 UISearchController 作为 UITableViewController 标头? (以编程方式)

如何将 UISearchController 与 SwiftUI 集成

将 InputAccessoryView 设置为 UISearchController

无法将 UISearchController 搜索栏添加到导航栏中,并且未调用委托方法

将 unwind segue 与 UISearchController 一起使用时出错