2011年9月30日金曜日

UIWindow.rootViewController

iPhoneアプリにGame Centerを組み込む時は、cocos2dで作る iPhone&iPadゲームプログラミングに掲載されている、GameKitHelperクラスが便利です。

長いドキュメントを読むよりも、実際のコードの方が GameKit フレームワークの理解を深めるのに役立ってくれます。まあ、でもドキュメントも読みましょう(笑)

この GameKitHelperクラスは、GameKitの用意したViewを表示させるために、UIWindowの rootViewController プロパティにアクセスします。
なのでAppDelegateのapplicationDidFinishLaunchingメソッドなどから、
window.rootViewController = viewController;
[window makeKeyAndVisible];
として、UIViewController を代入しておく必要があります。
と、ここまでは書籍に載っていました。

アプリを iOS3 にも対応させるため、GameKit フレームワークを Required から Weak に変更している事も多いと思います。
GameKitHelperクラスは、その辺りのこともちゃんと処理してくれます。
しかし、UIWindow の rootViewControllerプロパティは 、iOS4以上から使用可能なので、上記の単純な代入コードでは問題が起こりますので注意して下さい。

実際には以下のような感じで場合分けしておくと良いでしょう。
GameKitHelper *gkHelper = [GameKitHelper sharedGameKitHelper];
gkHelper.delegate = self;
if (gkHelper.isGameCenterAvailable) {
	// window.rootViewControllerはiOS4.0以上でないとアクセス出来ないので注意!
	window.rootViewController = viewController;
}

0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...