I have a UISearchBar
added as a subview to a UICollectionView
, and attached to a UISearchDisplayController
.
I set it up in viewDidLoad
:
self.searchController = [[UISearchDisplayController alloc] initWithSearchBar:self.searchBar
contentsController:self];
self.searchController.delegate = self;
self.searchController.searchResultsDataSource = self;
self.searchController.searchResultsDelegate = self;
[self.collectionView addSubview:self.searchBar];
When I push another view controller to the navigation controller then pop it, the search bar disappears. This only happens if the collection view is scrolled down enough for the search bar to be hidden. Also, even though the search bar disappears, tapping the white space where it's supposed to be activates the search display controller attached to it.
This happens only on iOS 7, and if I remove the search display controller the search bar will not disappear.
One more thing worth mentioning. When the search bar has disappeared, if I push another view controller then pop it, the bar will be visible again.
Apparently this is a bug of UISearchDisplayController
on iOS 7, so any ideas on how to work around it?
I ended up implementing
UISearchDisplayController
on my own. Here's my code.ZBNSearchDisplayController.h
ZBNSearchDisplayController.m