ナビゲーション・コントローラを使用してトップ・バー(タイトルと戻るボタンなどを含む)を表示するiPhoneアプリケーションがあります。iPhoneのUITabBarはアプリケーションウィンドウの一部です。デバイスを回転させるときの問題
アプリケーションウィンドウにUITabBar
を追加しました。これにより、アプリケーションウィンドウの一部を切り替えることができます。 ViewControllerのビューのそれぞれにタブバーを追加するのではなく、アプリケーションウィンドウにバーを追加しました。
(私がViewControllerでそれを持っていたときに、コントローラ間の切り替えによって、アニメーションポップ/プッシュが発生したときにタブバーが左/右にスワイプされ、全体ビューと共に)。
したがって、MainWindow.xib
にUITabBar
を追加して、それをアプリデリゲートの変数に関連付けました。私didFinishLaunchingWithOptions
方法では、私は、次のコードを追加:
[self.window addSubview:navigationController.view];
CGRect frame = navigationController.view.frame;
frame.size.height -= tabbar.frame.size.height;
navigationController.view.frame = frame;
tabbar.selectedItem = [tabbar.items objectAtIndex:0];
TabBarには目に見えるようにするために、メイン(navigationController
年代)ビューのサイズを変更します。
デバイスを回転させると問題が発生します。私のビューは完全なウィンドウに引き伸ばされ、タブバーを表示する能力が失われます。
私は、次のコードを使用して、私のViewControllerに- (void) didRotateFromInterfaceOrientation:(UIInterfaceOrientation) fromInterfaceOrientation
メソッドを追加しました:
- (void) didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
CGRect frame = self.view.frame;
frame.size.height -= [AppState shared].tabBar.frame.size.height;
//frame.origin.y = [AppState shared].tabBar.frame.size.height;
//frame.origin.x = 100;
self.view.frame = frame;
frame = [AppState shared].tabBar.frame;
frame.origin.y = [UIScreen mainScreen].bounds.size.height - frame.origin.y - frame.size.height;
[AppState shared].tabBar.frame = frame;
}
をそれはビューのサイズを変更し、ビューの一部にアップ/ダウンタブバーを移動(私は唯一の肖像/肖像を許可ここでは逆さの方向)。問題は、私のTabBarも逆さまにされていて、クリックできなくなったことです。
誰でもこのような状況に対処する方法を知っている:
これは、下の画像のように見えますか?または、タブバーをコントローラの表示に結びつけず、インターフェイスの回転をスムーズに処理できる方法を教えてください。