成就屏幕的“完成”按钮在某些设备上无效

时间:2013-03-14 02:21:22

标签: ios objective-c xcode uikit game-center

我正在使用GKAchievementViewController来显示成就。它在大多数设备上运行良好,但在某些设备上(运行iOS 5.1.1的iPod Touch第三代和iPad 1),点击“完成”按钮不会做任何事情。

我不知道如何调试这个......

以下是我用来显示成就的代码:

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

        [self presentModalViewController:viewController animated:YES];
    }

然后:

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

2 个答案:

答案 0 :(得分:0)

在实施achievementViewControllerDidFinish:

时应该有效
- (void) achievementViewControllerDidFinish:(GKAchievementViewController *)viewController
{
    [viewController.delegate dismissModalViewControllerAnimated:YES];
}

答案 1 :(得分: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];
        }
}