自定义iphone主页按钮的动作以在游戏中心提交分数

时间:2011-11-25 13:27:26

标签: objective-c ios ios4

我的应用程序中有一个按钮,用于向游戏中心提交分数并开始工作。 这是代码:

-(void)subScore{
GKScore *scoreRepoter = [[[GKScore alloc] initWithCategory:@"123456"] autorelease];
scoreRepoter.value=100;
[scoreRepoter reportScoreWithCompletionHandler:^(NSError *error) {
  if (error!=nil) {
      NSLog(@"errr submitting");
   }else
       NSLog(@"ok!");
}];

现在我想在使用主页按钮关闭应用之前提交分数。 我想自定义主页按钮的动作(如果可能的话) 或者我可能在viewDidUload中使用相同的代码行...或类似的东西...... 我会确定在卸载应用程序之前会执行该操作吗? 我应该在dealloc方法中使用该代码? 感谢

1 个答案:

答案 0 :(得分:2)

您不能直接自定义Home按钮的行为,但iOS在您的应用程序委托中提供了一些方法,您可以通过它们控制应用程序的生命周期。

在应用程序转到后台之前调用的方法是应用程序委托中的applicationWillResignActive:(通常此方法位于AppDelegate.m文件中)。

我认为通过调用你的方法可以获得所需的效果:

- (void)applicationWillResignActive:(UIApplication *)application {
    [mygame subScore];
}

另请注意,iOS有此方法的执行时间限制:您必须在不到五秒的时间内完成所有保存游戏的工作,否则您的应用程序将被终止。