I'm updating my app for iOS 7, and I'm in the process of adjusting all my views to account for the new transparent status bar (my app will still use opaque navigation bars).
It was relatively easy to adjust for the status bar in every view, except one major problem I'm having with a UISearchBar connected to a UISearchDisplayController in one of my view controllers.
The search bar seems to display normally, as shown below:
Search Bar http://imageshack.us/a/img163/9128/06vx.png
The problem is, as soon as I begin searching, the navigation bar disappears (as it should), but everything else also moves up to overlap the status bar:
Broken Search Bar http://imageshack.us/a/img11/8237/corh.png
This doesn't appear to be working as intended, since the darkening of the screen happens 20 pixels below the search bar, where the search bar should end.
Is there a built in solution for this in iOS 7? I'd rather not have to manually adjust the frame for every view each time the user begins and ends searching.
Thanks!
You're may using no translucent navigation bar? If so, this will solve it.
I think maybe add this to viewDidLoad will help:
just add
you can read more from here: UISearchController and definesPresentationContext
and from Apple documentation: UISearchController documentation
Note: UISearchDispalyController is deprecated in iOS7, use UISearchController instead in iOS8, method above use UISearchController
In my case, the views below the search bar were at their right place, only the search bar was overlapping the status bar. In this case, this peace of code works fine:
Hope it will be useful to others
Subclass your
SearchDisplayController
that's been added to yourUIViewController/UITablewViewController
and add this to its implementation -