iOS 7 integrates controllers of leaders, achievements, etc. to the GKGameCenterViewController class. You use the viewState parameter to control the view you want to display.
You want to do something similar to submit / reject leaderboards:
- (void) presentLeaderboards { GKGameCenterViewController* gameCenterController = [[GKGameCenterViewController alloc] init]; gameCenterController.viewState = GKGameCenterViewControllerStateLeaderboards; gameCenterController.gameCenterDelegate = self; [self presentViewController:gameCenterController animated:YES completion:nil]; } - (void) gameCenterViewControllerDidFinish:(GKGameCenterViewController*) gameCenterViewController { [self dismissViewControllerAnimated:YES completion:nil]; }
Similarly, to represent achievements, you can do this:
- (void) presentAchievements { GKGameCenterViewController* gameCenterController = [[GKGameCenterViewController alloc] init]; gameCenterController.viewState = GKGameCenterViewControllerStateAchievements; gameCenterController.gameCenterDelegate = self; [self presentViewController:gameCenterController animated:YES completion:nil]; }
Reporting will look something like this:
- (void) reportHighScore:(NSInteger) highScore forLeaderboardId:(NSString*) leaderboardId { if ([GKLocalPlayer localPlayer].isAuthenticated) { GKScore* score = [[GKScore alloc] initWithLeaderboardIdentifier:leaderboardId]; score.value = highScore; [GKScore reportScores:@[score] withCompletionHandler:^(NSError *error) { if (error) { NSLog(@"error: %@", error); } }]; } }
Greg
source share