Tua*_* Vu 11 ios swift uisearchcontroller
我遇到了UISearchController的问题,如果我在搜索栏中有文本并关闭它所在的VC,则searchBar不会消失,只是保持在屏幕上与其他VC中的所有内容重叠.如果你点击取消按钮它会崩溃.
在SO上尝试了一些解决方案,但没有一个有效.:/
self.resultSearchController = ({
let controller = UISearchController(searchResultsController: nil)
controller.searchResultsUpdater = self
controller.dimsBackgroundDuringPresentation = false
controller.hidesNavigationBarDuringPresentation = false
controller.searchBar.sizeToFit()
controller.searchBar.searchBarStyle = UISearchBarStyle.Minimal
controller.searchBar.barTintColor = UIColor(red: 243/255, green: 243/255, blue: 243/255, alpha: 1)
controller.searchBar.tintColor = UIColor.blackColor()
controller.definesPresentationContext = true
controller.edgesForExtendedLayout = UIRectEdge.None
self.tableView.contentInset = UIEdgeInsetsMake(64, 0, 0, 0)
self.tableView.tableHeaderView = controller.searchBar
return controller
})()
Run Code Online (Sandbox Code Playgroud)
非常感谢任何帮助!
更新:所以我找到了一个不太好的解决方案,即在viewWillDisappear中设置.active = false.但问题是,在完全消失之前,searchBar工件将在下一个/上一个VC上显示一秒钟.
chr*_*ris 18
更改以下内容:
controller.definesPresentationContext = true
Run Code Online (Sandbox Code Playgroud)
至
self.definesPresentationContext = true
Run Code Online (Sandbox Code Playgroud)
当您在导航堆栈上打开和弹出视图控制器时,该设置还会保留搜索栏的状态.
您可以在UIViewControllerdefinesPresentationContext
上阅读有关Apple文档的设置.
归档时间: |
|
查看次数: |
4188 次 |
最近记录: |