2012-02-28 9 views
0

新しいビューアコントローラ(新しいiOS 5 APIを使用)を組み込むことができるコンテナビューコントローラを作成しました。ポートレートの向きのみをサポートする子ビューコントローラが埋め込まれていて、デバイスが現在横向きになっている場合は、強制的に縦向きにしたいと考えています。コンテナビューコントローラでの方向の変更

ほとんどこれを行う[UIViewController attemptRotationToDeviceOrientation]の方法が見つかりましたが、それほどではありません。実際には逆の方法で動作し、子ビューコントローラが埋め込まれていてデバイスが縦向きの場合、横向きに回転できます(ただし、ビューコントローラは縦向きのままです)。次に埋め込みビューコントローラを閉じます。自動的にランドスケープに回転します。

現在の方向をサポートしていない子ビューコントローラを埋め込むときにコンテナビューコントローラを強制的に回転させる方法はありますか?

+0

を持っています。私が正確に理解すれば、私は過去に似たようなことをしていたと思います。 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { //任意の向きを許可するようにオーバーライドしました。 if(embeded child)がNOを返します。 \t return YES; } – BBog

+0

はい、現在行っています。問題は、子ビューコントローラが埋め込まれているときにコールバックが呼び出されないということです。ローテーション中、またはデバイスの向きと一致しない向きで '[UIViewController attemptRotationToDeviceOrientation] 'を呼び出すときのみ。 –

答えて

0

これは満足のいく答えではありませんが、私はあなたが回転を放棄し、90度のアフィン変換(サブビューの)に移動しなければならないと思います。回転はユーザーの物理的行為であり、実際にはデバイスを回転させることはできないかもしれません。しかし、変換はあなたの能力の範囲内です。ユーザに準拠し、デバイスをの適切なの向きに回転させると、いつでもそのIDに戻すことができます。

私は方法があると思います楽しい&幸運、

ダミアン

+0

あなたはそのベットでお金を得るでしょう。私がこれを調べるほど、あなたは正しいと思います。 –

+1

現実が自分の好みに合うと、私は喜んでいます。それ以外の場合は、私は働きます。 –

関連する問題