1

アプリにランドスケープモードのみをサポートするメインメニューがあります。設定して横向き制限を実装UIRootViewController::shouldAutorotateToInterfaceOrientation:... し、ポートレートモードをサポートする別のシーンがあります。そのため、ポートレートモードで別のシーンからメインメニューに移動すると、問題が発生します。アプリが自動的にランドスケープに回転せず、手動で回転するコードメソッドが見つかりません。

解決策はありますか?ありがたいです。

編集:すみません、詳細を追加するのを忘れました。RootViewControllerは、メニューと別のシーンで一般的です。さらに、これらのシーンは1つの共通ビューにあります(私のアプリはOpenGLを使用しています)。したがって、ポートレートシーンからメニューに入る前にUIRootViewController::shouldAutorotateToInterfaceOrientation:、ランドスケープのみにYESを返すように設定しました。

4

3 に答える 3

0

ポートレートをサポートする他のシーンが別のUIViewControllerによって制御されている場合は、そのビューコントローラーの-shouldAutorotateToInterfaceOrientation:を使用してその動作を定義できます。多くの場合、これだけで十分です。もちろん、一部のビューコントローラに対していくつかの凝った回転を行う必要があるが、他のコントローラに対しては行わない必要がある場合は、少し注意が必要です。

于 2010-12-23T19:13:15.827 に答える
0

これを行う簡単な方法はありませんが、[UIDevice setOrientation:]は開発者に公開されておらず、Appleによるアプリケーションの拒否につながります。

于 2010-12-23T16:58:06.360 に答える
0

レイヤーに回転を適用すると、まったく同じ効果が得られます。

myview.layer.transform = CATransform3DMakeRotation(M_PI/2, 0.0f, 0.0f, 1.0f);
于 2010-12-23T17:28:52.520 に答える