当我通过设置'nil'从navigationItem中删除searchController时。空的空间留在过去的地方而不是折叠。
尝试调用searchController.dismiss,navigationController.navigationItem.searchController.dismiss,navigationItem.searchController.dismiss,searchController.isActive = false。没有任何效果。
P.S - 使用模拟器
答案 0 :(得分:4)
使用此:
let search = UISearchController(searchResultsController: nil)
如果您设置以下内容,请删除此行
self.navigationItem.searchController = search
答案 1 :(得分:2)
删除搜索控制器后,应布局子视图。诀窍是您必须布局哪个超级视图的子视图:由于navigationItem
是导航堆栈的一部分,因此您应该在当前layoutSubviews()
上调用navigationController
:< / p>
navigationItem.searchController = nil
navigationController?.view.setNeedsLayout()
navigationController?.view.layoutIfNeeded()
根据Apple文档,您不应直接致电layoutSubviews()
。