0

私は、もうここで働いていない他の誰かによって開始されたプロジェクトを与えられました. いくつかの UIViewControllers を保持する UITabBarController があります。アプリケーションが iOS 6 で実行されている場合、すべて正常に動作しますが、iOS 5 で実行するとすぐに、すべての UIView が 90 度回転し、-100 から -300 程度の原点値が与えられます。

tabBar と set のすべてのビュー コントローラーをループすることができました。

myView.transform = CGAffineTransformMakeRotation(0.0);
myView setFrame:CGRectMake(0,0,1024,748);

UITabBarController の最初のビュー コントローラーは正しく表示されますが、モーダル ビュー コントローラーを起動しようとすると、すべてが再び詰まってしまいます。モーダルを含みます。

これを完全に修正する方法についてのアイデアが不足しています。ビューを回転させるコードには何も見つかりませんでした。

私が推測できるのは、iOS 6 では、UITabBarController を保持するメイン ビューの最初のサブビューは UILayoutContainerView ですが、iOS 5 では最初のサブビューはクラス UIView です。

これが iOS5 でサポートされていない UILayoutContainerView の問題である場合、アプリケーションを後方互換性を持たせるにはどうすればよいですか?

注:ランドスケープ (右/左) と iPad のみをサポートしています。また、ユーザーが UITabBarController とそのサブ コントローラーを初期化する前にアプリケーションを回転させた場合にも気付きました。すべて正常に動作します。アプリケーションを再実行し、再度回転しなくても機能します。

前もって感謝します

4

2 に答える 2

0

どうやら、これは私が間違っていたところです

iOS 5 の場合、アプリケーションのメイン ウィンドウのビューを設定するときに、次を使用する必要があります。

[self.window addSubview: tabBarController.view];

代わりに (iOS6 のみ)

[self.window setRootViewController: tabBarController];

それがすべてをどのように変えるのか、また iOS 5 で動作しない理由はよくわかりません。みんな、ありがとう :)

于 2013-05-10T01:26:37.770 に答える