我正在构建一个iOS应用,并通过从另一个视图控制器[1]执行以下转换,以UITableViewController
[2]进入UISearchController
:
let search = UITableViewController()
let nav = UINavigationController(rootViewController: search)
self.present(nav, animated:true, completion:nil)
但是,当我按下[2]中的“取消”按钮时,该应用会弹出整个导航控制器,然后返回查看[1]!我如何才能取消搜索而不是将整个导航控制器弹出呢?我觉得这应该是默认行为,但我缺少了一些东西。
答案 0 :(得分:0)
我不明白你为什么感到惊讶。您说present
来创建由导航控制器和表格组成的模式(显示)视图控制器:
let nav = UINavigationController(rootViewController: search)
self.present(nav, animated:true, completion:nil)
您present
的身份是nav
,导航控制器。那么那是什么反面呢?在dismiss
,dismiss
所在的位置是nav
。所以我会期待导航控制器在最后消失。
这里的真正问题可能是您所做的根本与您如何使用UISearchController无关。搜索控制器是本身的视图控制器,并且 it 应该执行结果表视图的呈现。您只是没有正确地处理它而已。您尚未显示有关搜索控制器及其配置的任何信息,因此无法提供更多详细信息。