Cocos2d を使用して iOS ゲームを作成しており、UITableView の外観をカスタマイズする必要があります。この投稿は、開始するのに適したフレームワークを提供しているようです 。サンプル コードは、単独でテストするとうまく機能します。問題は、cocos2d アプリで動作させることができないことです。
このサンプルでは、次のコードを使用してカスタム UIViewController を作成します (window は UIWindow で、viewController は EasyCustomTableController です)。
[window addSubview:viewController.view];
[window makeKeyAndVisible];
しかし、そのコードを使用すると、EasyCustomTableController の viewDidLoad 関数が実行されず、ゲーム内で何も起こりません。次のコードを使用して、viewDidLoad 関数を実行できます。
levelMenu = [[EasyCustomTableController alloc] init];
[[[CCDirector sharedDirector] openGLView] addSubview:levelMenu.view];
しかし、繰り返しますが、私のゲームでは何も起こらず、ビューは表示されません。
カスタム UIViewController を自分の cocos2d アプリで動作させるにはどうすればよいですか?
編集:
白い背景の UIView を表示できるので、levelMenu.view に問題があるはずです。
UIApplication* clientApp = [UIApplication sharedApplication];
UIWindow* topWindow = [clientApp keyWindow];
if (!topWindow) {
topWindow = [[clientApp windows] objectAtIndex:0];
}
//Works
UIView *white = [[UIView alloc] initWithFrame:CGRectMake(0, 0, size.width, size.height)];
white.backgroundColor = [UIColor colorWithRed:255 green:255 blue:255 alpha:255];
[topWindow addSubview:white];
//Doesn't work
levelMenu = [[EasyCustomTableController alloc] init];
[topWindow addSubview:levelMenu.view];
levelMenu のクラス コードはサンプルから変更していません。ここの最初のコード ボックスで viewDidLoad を確認できます。