私のアプリでは、私のビューコントローラのナビゲーションバーのすぐ下にある検索バーを使用しています。検索するにはsearchDisplayコントローラを使用します。検索バーをクリックするかタップすると私のナビゲーションバーは、ナビゲーションバーの場所でちょうどdisapperです。私の検索バーが来る。そして、私のテーブルビューはわずかに上がってくる。 は、このことは以下のようにメソッドで「searchDisplayControllerWillBeginSearch」を使用している:contentsTbViewが私のテーブルview.The三つのテーブルビューで風景フレームで検索バーに入るとフレームが設定されます
(void) searchDisplayControllerWillBeginSearch:(UISearchDisplayController *)controller{
NSLog(@"enter query");
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationDuration:0.3];
if(UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPad)
{
[navBarAvtarBani setFrame:CGRectMake(0,-44,768, 44)];
[contentsTbView setFrame:CGRectMake(0, 0, 768, 960)];
}
else {
[navBarAvtarBani setFrame:CGRectMake(0, -44, 320, 44)];
[contentsTbView setFrame:CGRectMake(0, 0, 320, 416)];
}
[UIView commitAnimations];
}
、ナビゲーションバー、検索バーは、インタフェースビルダーと相互作用しています。
これは、ポートレートモードでは問題なく動作します。しかし、アプリを起動して、回転して検索バーをクリックします。上に移動したナビゲーションバーが表示されます。ただし、検索バーのフレームは、 768ではなく1004です。 私は、自動的に回転する必要があります、回転する、uidevice通知を行い、メソッドを回転しました...しかし、これらのメソッドは、最初にそれを呼び出すと、 "searchDisplayControllerWillBeginSearch"が呼び出されます。検索表示コントローラが検索方法を検索します。