Могу убедиться, что отставка первого респондента в пользу поисковой панели решает проблему на iPad под iOS 4.3. В моем случае у меня был UIViewController, отвечающий на UIEventSubtypeMotionShake. Вы должны были явно вызвать resignFirstResponder до (!)
удаление UIViewController из иерархии представления, чтобы он работал.
- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event
{
if (motion == UIEventSubtypeMotionShake){
...
}
}
...
[someViewController becomeFirstResponder];
...
[someViewController resignFirstResponder];
[[someViewController view ] removeFromSuperview];
... (в моем случае я добавил иерархию, включающую UITabBarController, с вкладкой, включающей в себя UINavigationController, охватывающий Searchcontroller, вместо окна)
[searchViewController. searchbar becomeFirstResponder];
Понятия не имею, почему это не нужно на iPhone.