UITableViewController 隐藏导航栏[搜索栏]
Posted
技术标签:
【中文标题】UITableViewController 隐藏导航栏[搜索栏]【英文标题】:UITableViewController hides navigationbar[Search Bar] 【发布时间】:2016-08-15 13:16:38 【问题描述】:我在导航栏标题视图中添加了搜索栏,当我开始搜索 UITableViewController 隐藏导航栏时,如何在导航栏下方获取 UITableViewController。
搜索前
输入后
代码
let resultController = mainStoryboard.instantiateViewControllerWithIdentifier("SearchTableViewController") as! UITableViewController
self.searchController = UISearchController(searchResultsController: resultController)
// self.searchController.searchResultsUpdater = self
// self.searchController.delegate = self
// self.searchController.searchBar.delegate = self
self.searchController.searchBar.tintColor = UIColor.whiteColor()
self.searchController.searchBar.placeholder = "Search Outlets"
self.searchController.dimsBackgroundDuringPresentation = false
self.searchController.hidesNavigationBarDuringPresentation = false
【问题讨论】:
【参考方案1】:据我所知,您的视图控制器没有设置 definesPresentationContext
属性。如果不设置这个,肯定会发生奇怪的事情。尝试像这样更新您的代码:
let resultController = mainStoryboard.instantiateViewControllerWithIdentifier("SearchTableViewController") as! UITableViewController
self.searchController = UISearchController(searchResultsController: resultController)
//self.searchController.searchResultsUpdater = self
//self.searchController.delegate = self
//self.searchController.searchBar.delegate = self
self.searchController.searchBar.tintColor = UIColor.whiteColor()
self.searchController.searchBar.placeholder = "Search Outlets"
self.searchController.dimsBackgroundDuringPresentation = false
self.searchController.hidesNavigationBarDuringPresentation = false
self.definesPresentationContext = true
最后一行是我添加的行。当我在自己的应用程序中对此进行测试时,未指定此行会导致您看到的行为。
【讨论】:
以上是关于UITableViewController 隐藏导航栏[搜索栏]的主要内容,如果未能解决你的问题,请参考以下文章
滚动 UITableviewcontroller 时包含 UITextfield 的 UITableviewcell 隐藏
导航栏隐藏了我的 UITableViewController 的顶部 - 想法?
在 UITableViewController 顶部添加一个视图,该视图最初是隐藏的,直到用户下拉
包含UITextfield的UITableviewcell在滚动UITableviewcontroller时隐藏