0

iOS 4.3 以上のデバイスでランドスケープ モードのみをサポートするゲームを開発しました。ゲームセンターのログイン画面はios 6のランドスケープモードをサポートしていないため、アプリケーションにはゲームセンターが実装されており、ios 6デバイスでのテスト中にクラッシュしました。 ios6 (ios5 など) 未満のデバイスでは、縦向きを逆さまに表示します)。

-(NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
        return UIInterfaceOrientationMaskAll;
    else // iphone
        return UIInterfaceOrientationMaskAllButUpsideDown;
}

xcode:4.5 cocos2d v1.0.1 を使用

この問題を解決するのを手伝ってください

4

2 に答える 2

1

プロジェクトに特定のクラスを追加します

GKMatchmakerViewController-LandscapeOnly.h

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

@interface GKMatchmakerViewController(LandscapeOnly)
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation;
@end

GKMatchmakerViewController-LandscapeOnly.m


#import "GKMatchmakerViewController-LandscapeOnly.h"

@implementation GKMatchmakerViewController (LandscapeOnly)

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

@end
于 2013-01-15T08:44:24.463 に答える
0

このコード行 [window addSubview: viewController.view]; を置き換えます。以下のものをAppDelegate.mに

//************************************************************************
    NSString *reqSysVer = @"6.0";
    NSString *currSysVer = [[UIDevice currentDevice] systemVersion];
    if ([currSysVer compare:reqSysVer options:NSNumericSearch] != NSOrderedAscending)
    {
        [window setRootViewController:viewController];
    } else
    {
        [window addSubview: viewController.view];
    }
    //************************************************************************

そして RootViewController.m に以下のコードを追加します

///////********************************/////////

// For ios6, use supportedInterfaceOrientations & shouldAutorotate instead of shouldAutorotateToInterfaceOrientation

- (NSUInteger) supportedInterfaceOrientations{
    return UIInterfaceOrientationMaskLandscape;
}

- (BOOL) shouldAutorotate {
    return YES;
}

///////********************************/////////
于 2013-08-25T22:05:13.440 に答える