4

これが私のコードです:

// View Controller with navigation bar
InAppPurchaseViewController *purchaseViewController = [[InAppPurchaseViewController alloc] init];
purchaseViewController.title = @"Magasin";
purchaseViewController.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(dismissViewController:)] autorelease];
UINavigationController *navController = [[[UINavigationController alloc] initWithRootViewController:purchaseViewController] autorelease];

// Add `purchaseViewcontroller` TO container AND container ON openGLView
UIViewController *container = [[UIViewController alloc] init];
[container setView:[[CCDirector sharedDirector] openGLView]];
[container setModalTransitionStyle: UIModalTransitionStyleCoverVertical];
[container presentViewController:navController animated:YES completion:nil];

UITableViewpurchaseViewController にあります。

を使用することを考えて[UIColor clearColor]いましたが、何を使用しても、 の背景が黒くなりますUITableView。セルは選択およびスライドできなくなります (セルに含まれる要素を除く)。

編集: appdelegate

これが.hです

@class AudioEngine;
@class RootViewController;
@class Score;

@interface AppDelegate : NSObject <UIApplicationDelegate, GameCenterManagerDelegate>

@property int CurrentPackage;
@property int CurrentScore;
@property int CurrentHighScore;
@property BOOL SoundShouldPlay;
@property BOOL PauseScreenUp;
@property(nonatomic, retain) AudioEngine *CustomAudioEngine;
@property(nonatomic, retain) GameCenterManager *CustomGameCenterManager;
@property(nonatomic, retain) UIWindow *window;
@property(nonatomic, readonly) RootViewController *ViewController;
@property(nonatomic, retain) NSString* CurrentLeaderBoard;
@property(nonatomic, retain) NSMutableArray *TenLastScoresArray;

+(AppDelegate *)get;
-(void)connectToGameCenter;
-(void)addScoreToLastScore:(Score*)score;

そして、メソッドは起動を終了しました

-(void)applicationDidFinishLaunching:(UIApplication*)application
{
    CC_DIRECTOR_INIT();
    self.CurrentLeaderBoard = kLeaderboardID;
    [[SKPaymentQueue defaultQueue] addTransactionObserver:[InAppPurchaseSingleton sharedHelper]];
    [AudioEngine preloadBackgroundMusic];
    [AudioEngine playBackgroundMusic:3];
    self.SoundShouldPlay = YES;
    [SceneManager goSplash];
}
4

1 に答える 1

3

にView Controllerを表示する代わりにcontainer

UIViewController *container = [[UIViewController alloc] init];
...
[container presentViewController:navController animated:YES completion:nil];

cocos2D テンプレートが作成したルート ビュー コントローラーにそれを表示することで動作するはずです。通常はアプリ デリゲートからアクセスできます。

UIViewController *rootViewController = (UIViewController*)[(YOURAPPDELEGATE*)[[UIApplication sharedApplication] delegate] viewController];
[rootViewController presentViewController:navController animated:YES completion:nil];

viewControllercocos2D デフォルト テンプレートがアプリケーション デリゲート クラスに追加する ivar です。通常は非公開なので、アクセサーを定義する必要があります。

@property (nonatomic, readonly) RootViewController *viewController; //-- .h file

@synthesize viewController; //-- .m file

お役に立てれば。

編集:

アプリデリゲートにあるものに基づいて、次のように RootViewController を試してインスタンス化できると思います。

    CC_DIRECTOR_INIT
ViewController = [[RootViewController alloc] initWithNibName:nil bundle:nil];
ViewController.wantsFullScreenLayout = YES;
[ViewController setView:[[CCDirector sharedDirector] openGLView]];
    ...
于 2012-09-16T10:31:22.100 に答える