私は他のすべてのためにそしてYES
のために戻るUIViewControllerを持っています。スタックの一番上にあるそのビューで、私は新しいをプッシュするために使用します。新しいコントローラーは、内のすべてに対して戻ります。shouldAutorotateToInterfaceOrientation:
UIDeviceOrientationPortrait
NO
pushViewController:animated:
UIViewController
YES
shouldAutorotateToInterfaceOrientation:
最初のビューは回転を拒否します(予想どおり)。2番目のビューが押されると、ユーザーはデバイスを回転させることができ、UIが回転します(これも期待どおりです)。2番目のビューが横向きモードで、ユーザーが戻るボタン(を呼び出すpopViewControllerAnimated:
)を押すと、最初のビューは回転して表示されます(予期しない!)。
ユーザーがデバイスを回転させて縦向きに戻すと、ビューが回転し、以前と同様に縦向きモードのままになります。これは機能しますが、ユーザーが後ろに回転するまでは醜いです。だから私はこのビューをポートレートモードのままにする方法を探しています。
これまでに見つけた唯一の回避策は、を使用すること-[UIDevice setOrientation:]
です。これは警告をスローします(orientation
読み取り専用)が、実際に定義されているため機能します。これは巨大なハックであり、私は本当の解決策が欲しいです。実際の解決策を探して、GDBをPhotosアプリケーション(MobileSlideshow.app)に接続し、それもを使用していることを発見しました-[UIDevice setOrientation:]
。彼らは異なるルールを持っていると思いますが、内部アプリケーションであること。
期待される自動回転動作を実現する正しい方法はありますか?