我有一个UITableViewController
作为UINavigationController
的根。激活搜索栏不会隐藏导航栏。我尝试了很多不同的配置,但似乎都没有。
class TableViewController < UITableViewController
def viewDidLoad
search_controller = UISearchController.alloc.initWithSearchResultsController(nil)
search_controller.searchResultsUpdater = self
search_controller.searchBar.delegate = self
search_controller.searchBar.sizeToFit
self.definesPresentationContext = true
self.tableView.tableHeaderView = search_controller.searchBar
end
end
这是我的屏幕在激活时的样子。
为什么这不按预期工作?
编辑:视图也不会变暗
答案 0 :(得分:1)
我终于明白了。需要将UISearchController
分配给类变量,以便编译器不会将其丢弃。
@search_controller = UISearchController.alloc
.initWithSearchResultsController(nil)
@search_controller.searchBar.sizeToFit
@search_controller.searchBar.delegate = self
table_header_view @search_controller.searchBar
希望这可以帮助将来的某个人,所以他们不必浪费时间来解释为什么它不起作用。
答案 1 :(得分:0)
你可能需要这一行,我认为这可以解决你的问题:
search_controller. hidesNavigationBarDuringPresentation = true