user1904273
user1904273

Reputation: 4764

Hide search bar of search display controller

I dragged a search bar and display controller to a view controller and placed it at the bottom of the outline.

I then set it to display in navigation bar with following line in viewdidload. All that works.

self.searchDisplayController.displaysSearchBarInNavigationBar = true;

However, I want to hide it initially, and the following line in vewdidload is not having any effect.

self.searchDisplayController.searchBar.hidden = true;

Can anyone suggest what to do?

Thanks in advance for any suggestions.

EDIT:

I think I have figured out that you cannot have searchBar.hidden = true and displaysSearchBarInNavigationBar at the same time. Which is fine by me as I only want one or the other. So I tried separating the two cases.

First in view did load, I put

self.searchDisplayController.searchBar.hidden = true;

This does work if by itself.

Then I have a search button wired to an action method as follows:

 - (IBAction)searchButtonPressed:(id)sender {
    NSLog(@"search button pressed");
    self.searchDisplayController.searchBar.hidden = false;
    self.searchDisplayController.displaysSearchBarInNavigationBar = true;
    self.searchDisplayController.searchBar.showsCancelButton = YES;
}

However, while I can see from the log that the method is called, it does not unhide the search bar. Perhaps it is delegate issue but still looking for solutions.

Upvotes: 0

Views: 2577

Answers (2)

Rashwan L
Rashwan L

Reputation: 38833

Do it like this

  1. Add an outlet to your searchBar from your Storyboard
  2. Then you can use the outlet identifier to hide the searchBar by adding the following row

searchBar.hidden = true

Upvotes: 1

Akash
Akash

Reputation: 491

=> try it.

self.definesPresentationContext = true

OR-------------

searchController.hidesNavigationBarDuringPresentation = false

=> more If You Want to know given Refrence below might be useful:-

How to implement UISearchController in UITableView - SWIFT

UISearchController doesn't hide view when pushed

Upvotes: 0

Related Questions