Xcode 4とiOS 5に切り替えてからアプリを回転させるのに問題があります。私の髪を引き裂いた後、まったく新しいテストプロジェクトを作成して、ベアボーンアプリを回転させることができるかどうかを確認しました。私のアプリがXcode 4/iOS5で回転しないのはなぜですか?
「空のアプリケーション」テンプレートを使用してテストプロジェクトを作成しました。このテンプレートに追加したのはUINavigationControllerで、UIViewControllerがプッシュされていました。 UIViewControllerのnibファイルには、「Hello」というラベルが1つあります。
ターゲットサマリ画面で、[サポートされているデバイスの向き]のすべてのボタンをクリックしました。ナビゲーションと私はshouldAutoRotateを変更ビュー・コントローラ・コードのための.mファイルで
...へ:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
return (YES);
}
テストプロジェクトは問題なく構築し、完璧に動作します。ナビゲーションバーとフレンドリーな「こんにちは」メッセージがありますが、ダーンは回転しません!
明らかに、私はかなり単純なものを見逃していますが、私はそれが何であるか把握できません。私の疑惑は.nibに落ちた。 「Simulated Metrics」には、Orientationという属性があります。これはポートレートに設定されています。唯一の選択肢は「風景」です。この設定を 'Landscape'に変更すると、.nibエディタのビューは横向きに変わりますが、アプリを実行すると、Portraitモードで実行され、回転を拒否します。
うまくいけば、誰かが私の大失敗から大きな笑いを得て、私が作っている間抜けの間違いを指摘してくれるでしょう。してください!あなたのRootViewController.mで
をライン
を見つけ、あなたは何でこれを置き換えることができますしかし、あなたは私を解決策の香りに置いた。 applicationDidFinishLaunchingWithOptionsでは、私はしていた:[self.window addSubview:nav.view]、私は少し古い学校だと思います。私がする必要があったのは、[self.window setRootViewController:nav]でした。これは回転の問題を修正しましたが、私はなぜそれが本当にわかりません。最初の方法は私のために正常に動作するために使用されます。私はこれを読んで、それがもはやなぜ機能しないのかを理解する必要があります。ありがとう! – John
ウィンドウに最後に表示されたビューは、回転イベントを受け取るビューです。 nav.viewの後に別のビューをウインドウに追加していたのなら、それはあなたのためにうまくいかなかったのかもしれません。 – Kevlar
古いプロジェクトを更新していて、setRootViewController:というものが問題でした。ありがとう、ジョン! – MacD