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.