I also ran into this error, and I filed a report with Apple and requested technical assistance. I will let you know how this happens. In the meantime, I will give you a brief description of this error.
On an iPhone, in order to preserve precious vertical screen real estate in landscape mode, the UISearchDisplayController sets the UISearchBar to combine its search string and search field in one horizontal layout. This works very well due to the increased horizontal screen size (480 pixels in the Landscape). Unfortunately, this does not work so well on the iPad, where in landscape mode, changing the user interface is really not necessary in the first place, because you have a lot of vertical real estate. You also have only 320 pixels of horizontal display space in the main view of the UISplitViewController, and not a 480 iPhone enlarged. The result is iSore.
Presumably the problem is that the UISearchDisplayController is behaving badly in its willRotateToInterfaceOrientation: duration: method. In particular, he did not bother to check whether he is on the iPhone or not, before setting the combandsLandscape property to his UISearchBar. The private kludge API in your code works because it corrects this oversight in the UISearchDisplayController. But, of course, Apple will unleash the fury of the ancients on you for using undocumented APIs, so you cannot. In fact, we are at the mercy of Apple on this.
If you are ready to give up eye candy and the convenience of the UISearchDisplayController, you can use the UISearchBar sans UISearchDisplayController and manage aspects of the presentation yourself. Obviously, this requires much more code, and it would be pointless if the Apple API engineers completed their tasks, but at least resolved the display error.
If you are Apple, you can use your own undocumented APIs, so Mail.app does not have this problem.
UPDATE
The error report I filed with Apple is # 8344719.
schmidt349
source share