1

アプリにGameCenterを実装していますが、iOS6でleaderboardCategoryプロパティを読み込もうとして問題が発生しています。

これが私がGKGameCenterViewControllerを提示する方法です:

    GKGameCenterViewController *gcViewController = [[GKGameCenterViewController alloc]init];
    [gcViewController setLeaderboardCategory:currentLeaderboard];
    [gcViewController setGameCenterDelegate:self];
    [self presentViewController:gcViewController animated:YES completion:NULL];
    [gcViewController release];

次に、デリゲートが呼び出されたときに、leaderboardCategoryプロパティが何を示しているかを確認します。

-(void)gameCenterViewControllerDidFinish:(GKGameCenterViewController *)gameCenterViewController{
    NSLog(@"%@", gameCenterViewController.leaderboardCategory);
}

問題は、却下する前にどのリーダーボードに切り替えても、最初に渡したリーダーボードが常に表示されることです。

Appleのドキュメントによると:

リーダーボードが表示されるとき、このプロパティの値によって、プレーヤーに表示されるリーダーボードのコンテンツが決まります。プレーヤーが表示するリーダーボードコンテンツを変更すると、leaderboardCategoryプロパティが自動的に更新されます。たとえば、プレーヤーの選択を保持するために、画面が閉じられた後にleaderboardCategoryプロパティを読み取り、次にViewControllerを初期化するときにその値を設定できます。

ここで、GKLeaderboardViewControllerも使用してみましたが、成功しませんでした。ただし、iOS 5でGKLeaderboardViewControllerを使用すると(GKGameCenterViewControllerはiOS 6より前では使用できません)、Appleのドキュメントが示すように「category」プロパティが更新されます。

私は何が欠けていますか?

4

0 に答える 0