インターフェイスの向きとUITabBarControllerの問題
-
26-09-2019 - |
質問
クイック問題:
私は2つのナビゲーションコントローラとUITabBarControllerを持っている。
[左と右のコントローラーそれらを呼び出すことができます]は選択したデフォルトに残っコントローラ私は、新しいビューコントローラをプッシュすることができ、そのインターフェース検出方向ます。
右のコントローラのIオンは、同じビューコントローラをプッシュすることができますが、それはインターフェースの向きを検出することができません、またはそのことについては、それもすべてT ___ T
でshouldAutoRotateInterface方法にはなりませんHaaalp !!
それは私がhidesBottomBarWhenPushedプロパティの使用を推進してることを任意の関連性は、View Contollerである場合。
解決
あなたのuitabbarcontrollerは、自動回転を実装していますか?自動回転を実装したいすべての子のViewControllerは、その親が自動回転を実装していなければなりません。
他のヒント
ほとんどの場合、これはあなたの問題です。
タブバーコントローラは、肖像画をサポート デフォルトではオリエンテーションとしません 横向きに回転 ルートビューコントローラのすべてがサポートされていない限り、このような方位の。 場合は、デバイスの向き 変更は、タブバーコントローラを発生します ビューコントローラのその配列を照会します。 それらのいずれかがサポートされていない場合は オリエンテーション、タブバー コントローラは変更されません。その オリエンテーションます。
ソリューションは、あなたのビューにつながるすべてのビューコントローラ上で、次のメソッドをオーバーライドすることです。
- (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)orientation {
return YES;
}
たとえば、代わりにIBのデフォルトUITabBarController
を使用して、ちょうど方法上記を含む独自のサブクラスで置き換えます。
私はこの上のパーティーに少し遅れだけど、私は私が肖像画で実行するために、常にたかったタブバーのアプリの起動時にオートローテーションで問題に遭遇します。
アプリのplistのは、両方の開始に必要な設定でのみがポートレートモードを許可し、すべての私の見解コントローラはポートレートモードのみを許可しています。しかし、私は風景の中に私のiPhoneを保持しているアプリを起動したときに、アプリが肖像画に始まったが、その後景観に回転!
クラスUITabBarController
のカテゴリを使用してサブクラスUITabBarController
、I単にオーバーライドshouldAutorotateToInterfaceOrientation:
のUITabBarController
方法よりもむしろ。私は私のアプリデリゲートでこのコードが含まれています:
@implementation UITabBarController(UITabBarControllerCategory)
-(BOOL)shouldAutorotateToInterfaceOrientation:
(UIInterfaceOrientation)toInterfaceOrientation
{
return (toInterfaceOrientation == UIInterfaceOrientationPortrait);
}
@end
美しく作品、そして非常に軽量です。