私はこの問題を1日のうちのより良い部分(そして多くの多くのGoogleおよびStackOverflow検索)と戦い、問題はありますが、私はどこでもこのソリューションを見ていません。ルートUIViewControllerは向きの変更に応答しますが、2番目のUIViewControllerは表示されません
私は、ルートコントローラとしてUINavigationControllerと、ルートコントローラが所有する2つのUIViewControllerを持つアプリケーションを持っています。すべてがプログラマチックに作成されていますが、私はInterface Builderを全く使用していません。両方のUIViewControllerは、(おそらく)すべての向きで回転を処理するように設定されていますが、ルートUIViewControllerだけが正しく回転します。 2番目のUIViewControllerの場合、shouldAutoRotateToInterfaceOrientation
は一度は起動しますが、再度発生することはありません。willRotateToInterfaceOrientationは決して起動しません。
問題のあるView Controllerには、UILabel、UITextView、およびUISwitchというサブビューの標準コントロールしかありません。 tabBarまたはその他のView Controllerはサブビューとして含まれていません。ビューとVCはどちらもスコープにあり、そうでなければ健全だと思われます。ビューとのすべての対話は、回転を除いて正しく機能します。
私は、具体的呼んでいる:
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications
と実装を:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didRotate:) name:@"UIDeviceOrientationDidChangeNotification" object:nil];
didRotate
方法と一緒に違いはありませんでした。 iOSの5で
ありがとうございます!私はiOS 5でこの問題を認識していませんでしたが、それが起こると、私はiOS 4.2をターゲットにしていました。 – strings42