2011-10-17 14 views
0

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で

答えて

0

私は実際に私のルートビューコントローラで、このようなラインを持っていないような...

return (UIInterfaceOrientationIsLandscape(interface Orientation)); 
+4

をライン

return (UIInterfaceOrientationIsPortrait(interface Orientation)); 

を見つけ、あなたは何でこれを置き換えることができますしかし、あなたは私を解決策の香りに置いた。 applicationDidFinishLaunchingWithOptionsでは、私はしていた:[self.window addSubview:nav.view]、私は少し古い学校だと思います。私がする必要があったのは、[self.window setRootViewController:nav]でした。これは回転の問題を修正しましたが、私はなぜそれが本当にわかりません。最初の方法は私のために正常に動作するために使用されます。私はこれを読んで、それがもはやなぜ機能しないのかを理解する必要があります。ありがとう! – John

+0

ウィンドウに最後に表示されたビューは、回転イベントを受け取るビューです。 nav.viewの後に別のビューをウインドウに追加していたのなら、それはあなたのためにうまくいかなかったのかもしれません。 – Kevlar

+0

古いプロジェクトを更新していて、setRootViewController:というものが問題でした。ありがとう、ジョン! – MacD

関連する問題