0

実績を表示するために GKAchievementViewController を使用しています。ほとんどのデバイスでは問題なく動作しますが、一部のデバイス (iPod Touch 第 3 世代および iOS 5.1.1 を実行している iPad 1) では、Done ボタンをタップしても何も起こりません。

これをデバッグする方法がわかりません...

実績を表示するために使用しているコードは次のとおりです。

    viewController = [[GKAchievementViewController alloc] init];
    if (viewController)
    {
        viewController.achievementDelegate = self;

        [self presentModalViewController:viewController animated:YES];
    }

その後:

- (void)achievementViewControllerDidFinish:(GKAchievementViewController *)aViewController
{
     [self dismissModalViewControllerAnimated:YES];
}
4

2 に答える 2

0

実装時に動作するはずですachievementViewControllerDidFinish:

- (void) achievementViewControllerDidFinish:(GKAchievementViewController *)viewController
{
    [viewController.delegate dismissModalViewControllerAnimated:YES];
}
于 2013-03-14T02:28:07.113 に答える
0

誰かが同じ問題を抱えている場合に備えて、自分の質問に答えます。これで問題が解決したようです:

- (void)achievementViewControllerDidFinish:(GKAchievementViewController *)aViewController
{
        if ([self respondsToSelector:@selector(dismissViewControllerAnimated:completion:)])
        {
            [self dismissViewControllerAnimated:YES completion:^{
                aViewController.achievementDelegate = nil;
                [aViewController release];
            }];
        }
        else
        {
            [self dismissModalViewControllerAnimated:YES];
            aViewController.achievementDelegate = nil;
            [aViewController release];
        }
}
于 2013-03-15T17:11:47.663 に答える