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时隐藏

当键盘出现时,带有大单元格的 UITableViewController 会崩溃,隐藏 UITextView

是否可以让 UITableViewController 隐藏其单元格直到有内容,同时显示“无内容”消息? [关闭]