UISearchController搜索栏不隐藏导航栏

时间:2015-08-19 06:49:34

标签: ios uitableview uinavigationcontroller uinavigationbar rubymotion

我有一个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

这是我的屏幕在激活时的样子。

enter image description here

为什么这不按预期工作?

编辑:视图也不会变暗

2 个答案:

答案 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