0

。オリエンテーションサポート以外はすべてうまく動作します。ませshouldAutorotateToInterfaceOrientationに呼び出していない使用して、カスタムTabBarController私は(それはサブクラス化のために意図されていないため、NOT UITabBarController)のUIViewControllerを継承するカスタムTabBarControllerを作成している

私TabBarControllerは私のUIWindowのrootViewControllerとして設定し、UIViewControllersの内部配列を含んでいます。私の場合は、各タブのルートとしてUINavigationControllersを追加しました。

私はshouldAutorotateToInterfaceOrientationへの呼び出しを取得し、私のTabBarControllerで私UINavigationControllersのいずれかに新しいのUIViewControllerを押すと、ここで私はのUIViewControllerがどの方向(アップルのマニュアルに記載されている)をサポートする必要のある設定することができますので、これはすべての罰金です。

私は私のUINavigationBarで戻るボタンを押して戻ったとき、私はshouldAutorotateToInterfaceOrientationを呼び出さないので、私たちが表示するビューは間違った方向になります。

私はUITabBarControllerと私のカスタムTabBarControllerを置き換えることにより、簡単なテストを行っていると、戻るボタンを押したときにそこここで何か間違っている必要がありますが、私は何を把握することはできませんので、私はshouldAutorotateToInterfaceOrientationへの呼び出しを取得します。

のはなぜshouldAutorotateToInterfaceOrientationへの呼び出しを得ることはありませんか? UITabBarControllerは私が見逃したことをしていますか?

は、ここでは誰もが同じ問題を経験していますか?私はアイデアが不足しているので、試してみる価値あるかもしれない任意のアイデアを持っていますか。

EDIT

この問題はiOS5をコンテナビューコントローラを使用して子としてTabBarController内のそれぞれのUIViewControllerを追加することによって解決されます。

このメソッドを持つ子としてUIViewControllerを追加します。addChildViewController次に、automatedForwardAppearanceAndRotationMethodsToChildViewControllerをオーバーライドしてYESを返します。

私は前にこのような問題を見てきました

答えて

2

今すぐあなたのUIViewControllersにshouldAutorotateToInterfaceOrientationコールバックを取得する必要があり、それは常には-shouldAutorotateToInterfaceOrientation:方法へのすべてのビューコントローラとしてだけではなく、最上位の1を加えることに煮詰めあなたは期待するかもしれません。

(とあなたが怠け者なら、単にUIViewControllerにカテゴリを追加)

+1

私はすべてのビューコントローラにこのメソッドを追加したが、私はまだ電話を得ることはありません。しかし、私はちょうどiOS5の新しいコンテナビューコントローラを読みました。 addChildViewControllerを持つ子としてタブバーコントローラにビューコントローラを追加し、automaticallyForwardAppearanceAndRotationMethodsToChildViewControllersをオーバーライドして、私はshouldAutorotateToInterfaceOrientationコールバックを取得します。 –

+0

cool。サブクラス化せずに使用するView ControllerもViewControllerであることに注意してください。 – mvds

関連する問題