带有Segue的UISearchbar(UISearchResultsUpdating)不会解雇

时间:2015-08-24 11:35:13

标签: ios objective-c uitableview uisearchcontroller

我遇到UISearchBar的问题。当我与UITableView一起搜索某些文字时,如果点击了一个结果单元格,UISearchBar仍会在下一个UIViewController中显示。 UISearchbar仍在那里(使用关键字)

因此,在点击一个结果后,生病了(在下一个视图控制器中),但搜索栏和键盘仍在显示。

如何解除当前UISearchController,以便搜索栏和键盘不显示在下一个UIViewController中?

我试过了:

definesPresentationContext = true

我试图解雇presentingViewController

我在为segue准备的所有这一切。

我的想法是我必须解雇UISearchController ...但我如何才能在preparedForSegue中访问它(searchResultsViewControllers - 这是tableViewController用于显示searchResults

2 个答案:

答案 0 :(得分:2)

你必须使用这样的东西,忘记definePresentationContext

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    searchController.active = false //This will dismiss the searchcontroller, use your own variable for searchController.
    //CALL THE SEGUE YOU WANT BELOW
}

答案 1 :(得分:1)

请尝试使用以下代码来关闭搜索栏:

<% @session.chunk{|s| s["id"]}.each do |curr_id, a| %>
  <%= curr_id %>
  <% a.each do |s| %>    
    <%= s["name"] %>
    <%= s["count"] %><br>
  <% end %>
<% end %>