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.
Do it like this
searchBar.hidden = true