我正在构建一个 iOS 应用程序,通过从另一个 View Controller [1] 执行以下转换,我得到一个带有 UISearchController [2] 的 UITableViewController :
let search = UITableViewController()
let nav = UINavigationController(rootViewController: search)
self.present(nav, animated:true, completion:nil)
但是,当我按下 [2] 中的“取消”按钮时,应用程序会弹出整个导航 Controller 并返回查看 [1]!我如何让它只是取消搜索而不是弹出整个导航 Controller ?我觉得这应该是默认行为,我错过了一些东西。
Best Answer-推荐答案 strong>
我不明白你为什么感到惊讶。你说 present 来创建一个由导航 Controller 和表格组成的模式(呈现) View Controller :
let nav = UINavigationController(rootViewController: search)
self.present(nav, animated:true, completion:nil)
present 是 nav ,即导航 Controller 。那么它的反面是什么?它是 dismiss ,你的 dismiss 是 nav 。所以我会期望导航 Controller 最终消失。
这里真正的问题可能是你所做的根本不是你如何使用 UISearchController。搜索 Controller 本身是一个 View Controller ,它应该显示结果 TableView 。您只是没有正确处理它以使其做到这一点。您没有显示任何有关您的搜索 Controller 及其配置的信息,因此无法提供更多细节。
关于ios - UISearchBar 不应关闭导航 Controller ,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/53584082/
|