我正在使用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];
}
答案 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];
}
}