如果没有初始搜索栏,如何呈现 UISearchController?

Posted

技术标签:

【中文标题】如果没有初始搜索栏,如何呈现 UISearchController?【英文标题】:How can a UISearchController be presented without an initial search bar? 【发布时间】:2017-10-02 23:06:24 【问题描述】:

如果有更好的方法来实现这一点,请随时给我提示。

我想要做的是从 UITableViewCell 选择事件中打开一个搜索控制器(它用于地址输入)。我已经通过在情节提要等中创建一个全新的视图控制器来完成,但这对于仅显示地址查找来说似乎是不必要的。

我也尝试过实例化 UISearchContainerViewController,但我终其一生都无法弄清楚如何让它“工作”。它呈现“黑色”。

编辑:我发现尽管文档说将 UISearchController 包装在 UISearchContainerViewController 中直接呈现 UISearchController 工作正常。

https://developer.apple.com/documentation/uikit/uisearchcontroller

虽然 UISearchController 对象是一个视图控制器,但您永远不应该直接从您的界面呈现它。如果您想显式显示搜索结果界面,请将搜索控制器包装在 UISearchContainerViewController 对象中并显示该对象。

【问题讨论】:

【参考方案1】:

我也在研究这个,我发现的只是 - 你可以像这样向你展示 serchcontroller:

self.present(searchcontroller, animated: true, completion: nil)

我知道苹果不允许这样做,但它可以解决您的任务。

另外我想你可以在 searchBar 上调用 becomeFiestResponder。如果它不起作用 - 尝试在 searchBar 内的 TextField 上调用 becomeFiestResponder。

【讨论】:

以上是关于如果没有初始搜索栏,如何呈现 UISearchController?的主要内容,如果未能解决你的问题,请参考以下文章

如何对过滤器方法的结果进行条件渲染?反应

如何在单击时展开搜索图标并呈现我已经在代码中构建的搜索栏组件?

带有 UISearchController 的 UITableView 在进入结果视图并返回时进入导航栏

如何在 WPF 中的窗口标题栏上呈现按钮等?

将查询保留在搜索栏中,但使用占位符作为初始默认值

在 Django 中无法从搜索栏呈现结果