3

誰が私に何が起こっているのか説明できますか? 私はこの方法を使用します

- (BOOL)shouldAutorotateToInterfaceOrientation:( UIInterfaceOrientation)interfaceOrientation
 {     
return ( UIInterfaceOrientationIsLandscape( interfaceOrientation ) );
 }

matchmakerViewController の横向きを提供します。iPhone や iPad シミュレーターでも完全に動作しますが、iPad デバイスでは動作しません。iPad でアプリケーションを実行すると、matchmakerViewController が不思議なことに縦向きに表示されます。どうしたの?どうすれば修正できますか? ありがとう

4

4 に答える 4

3

shouldAutorotateToInterfaceOrientationあなたの好きなものを変える

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

また、アプリケーションのplistファイルを確認してください。サポートされているインターフェイスの向きのようなキーがあり、そのタイプは配列で、4つの値があります。plistからポートレートモードを削除して保存します。それが動作します。こちらをご確認ください。

于 2012-06-13T19:44:53.250 に答える
1

(これはおそらくあなたの問題ではありませんが、私は次のコードを使用しており、正常に動作します)

return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || 
interfaceOrientation == UIInterfaceOrientationLandscapeRight)

さらに、親ビューが自動回転trueに設定されていることを確認してください。shouldAutorotateToInterfaceOrientationが機能しない

于 2012-06-12T15:50:07.467 に答える
1

これは、GKMatchMakerViewController を拡張するカテゴリによるエレガントなソリューションです。同じソリューションは、リーダー ボード ビューや実績ビューなどの他のゲーム センター ビューでも機能します。

.h ファイル

#import <Foundation/Foundation.h>
#import "GameKit/GameKit.h"

@interface GKMatchmakerViewController(LandscapeOnly)



-(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation;

@end

.m ファイル

#import "GKMatchmakerViewController-Landscape.h"

@implementation GKMatchmakerViewController(LandscapeOnly)


-(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {

   return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight);


}

@end

それが機能するかどうか教えてください!!

于 2012-06-13T19:53:40.523 に答える
0
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
    return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
}


also check parent controller maybe some controller return YES

or try 

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
    if (interfaceOrientation==UIInterfaceOrientationPortrait)
        return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
    else 
        return NO;
}
于 2012-06-19T10:45:28.350 に答える