2011-10-26 14 views
4

私は写真ビューコントローラを使っていくつかの写真をポートレートとランドスケープビューで表示しています。私がしたのは-(BOOL)shouldAutorotateToInterfaceOrientationの方向を以下のコードで編集することですが、xcode(メニューハードウェア>右回転)でテストすると、ビューはランドスケープで回転しません。私がやったことに何か間違っていますか?このビューが回転していない理由は何ですか?

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    return (interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight); 
} 

ビューコントローラは、タブベースのiPhoneアプリケーションの一部であり、このビューはルートビューではありません。これは問題ですか?

+0

[投稿にはサインしないでください] – cmbuckley

答えて

0

オーバーライドする方法はshouldAutorotateToInterfaceOrientationです。メソッドの署名に最後にOrientationがありません。

+0

私はあなたの答えを10回読みました。私はあなたが何を言っているのか分かりません。 – GeneCode

+0

@Rocotilos:この質問の編集履歴を確認してください。 OPはもともと 'shouldAutorotateToInterface'を持っていましたが、最後に必要な"オリエンテーション "はありませんでした。私が答えた後、私の答えが今や意味をなさないように、OPは質問を編集しました。 – MusiGenesis

+0

ああ。確認のためによろしくお願いいたします。 – GeneCode

1

サポートされているオリエンテーションも確認してください。 XCode 4(プロジェクト - >概要(タブ) - >サポートされているデバイスの方向 - >希望する方向)。

+0

チェックされたランドスケープの向きがチェックされている – Steve

1

私の最初のアイデアは、return true;だけですが、パラメータが渡されても問題がないことを確認することができます。

次に、このビューがウィンドウ(またはxibを使用している場合は他の最上位オブジェクト)に直接接続されていない場合、すべての親ビューでtrueを返す必要があります。テストのために、ツリー内のすべてのビュー(コントローラ)に対して、

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIIinterfaceOrientation)interfaceOrientation 
{ 
    return true; 
} 

を上書きしてください。

+0

まだ実行されていません – Steve

0

このメソッドを実装するViewControllerがウィンドウのrootViewControllerであることを確認してください。 また、return (interfaceOrientation != UIIinterfaceOrientationPortraitUpsideDown)を使用すると読みやすくなります。 ;)

-shouldAutorotateToInterfaceOrientationはまったく呼び出されますか?

#elif GAME_AUTOROTATION == kGameAutorotationUIViewController 
// 
//lots of useless comments 
// 
return (UIInterfaceOrientationIsPortrait(interfaceOrientation)); //THIS LINE HERE 

リターン(UIInterface ...ポートレート)という行をされています。次のコードのためのあなたのRootViewController.mファイルルックで:あなたは間違った場所で探して...この方法で何かをログイン

+0

チェックするためにnslogを追加する – Steve

0

をお試しくださいアプリの回転機能を決定する行。あなたはこの

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIIinterfaceOrientation)interfaceOrientation 
    { 
     /* return (interfaceOrientation == UIIinterfaceOrientationPortrait || interfaceOrientation == UIIinterfaceOrientationLandscapeLeft || interfaceOrientation == UIIinterfaceOrientationLandscapeRight); */ //GET RID OF ALL THIS CRAP 
return true; //do this instead, and if this doesn't work, try return YES; 
} 
+0

プログラミングコースをもう一度見直す必要があります。この式return(interfaceOrientation == UIIinterfaceOrientationPortrait || interfaceOrientation == UIIinterfaceOrientationLandscapeLeft || interfaceOrientation == UIIinterfaceOrientationLandscapeRight);正しいです – Steve

+0

私はそれが正しいという事実を認識しています。ちょうど何かが正しいということはそれが効率的であることを意味しません – Gabe

+0

あなたは正しいです:)あなたの貢献のためのThx – Steve

1

でも

これは単なるタイプミスかもしれない...あなたは、完全に回転し一定の方向でそれを保つことができるようにできるように、何にこれを変更、またはあなたが望むものは何でもすることができますが、そのないUIIinterfaceOrientation、そのUIInterfaceOrientation

0

私は方法は、このようなものです、それは私の最新のXcodeで、型エラーまたはエディションの違いだか分からない:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)TOI nterfaceOrientation

これはうまくいきますが、引数の「to」が足りませんか?

関連する問題