2011-11-25 35 views
0

我在我的應用程序中有一個按鈕,提供分數給gamecenter並工作。 這是代碼:定製iphone主頁按鈕的動作,以在gamecenter中提交分數

-(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方法中創建該代碼? 謝謝

回答

2

您不能直接自定義主頁按鈕的行爲,但iOS會在您的應用程序的委託中提供一些方法,通過它們可以控制應用程序的生命週期。

在應用程序轉到後臺之前調用的方法是applicationWillResignActive:在您的應用程序委託中(通常此方法位於AppDelegate.m文件中)。

我想你可以通過調用你的方法一樣,獲得所需的效果:

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

同時請注意,iOS版具有執行這種方法的時間限制:你必須做的所有儲蓄 - 在遊戲中的工作少於五秒鐘或您的申請將被殺死。