如何将用户链接到游戏中心的特定排行榜?

时间:2014-09-17 11:34:05

标签: ios ios7 game-center game-center-leaderboard

我已经在游戏中心中设置了我的排行榜。

当用户点击高分按钮时,如何实现这一目标,将它们带到游戏中心的特定排行榜?

有没有办法在不使用 UIWebView 中的特定链接的情况下执行此操作?

我希望游戏中心能够在应用外打开。我的应用专为 iOS7 及以上版本量身定制。

1 个答案:

答案 0 :(得分:1)

很久以前,在iOS7下,你无法控制GKGameCenterViewController内发生的事情,只有这3个选项:

typedef NS_ENUM(NSInteger, GKGameCenterViewControllerState) {
    GKGameCenterViewControllerStateDefault = -1,
    GKGameCenterViewControllerStateLeaderboards,
    GKGameCenterViewControllerStateAchievements,
    GKGameCenterViewControllerStateChallenges,
};

你可以设置这个属性:

@property (nonatomic, assign)   GKGameCenterViewControllerState viewState;

像这样(一个例子):

- (void)presentLeaderboardsOnViewController:(UIViewController *)viewController {
    GKGameCenterViewController *leaderboardViewController = [[GKGameCenterViewController alloc] init];
    leaderboardViewController.viewState = GKGameCenterViewControllerStateLeaderboards;
    leaderboardViewController.gameCenterDelegate = self;
    [viewController presentViewController:leaderboardViewController animated:YES completion:nil];
}

iOS7及以上你有这个属性(从不尝试过):

@property (nonatomic, retain)   NSString *leaderboardIdentifier __OSX_AVAILABLE_STARTING( __MAC_NA, __IPHONE_7_0); // Showing specified leaderboard

所以只需设置这个属性,你就去了,你已经用你想要的排行榜打开了GKGameCenterViewController:)

祝你好运!

修改

要关闭游戏中心屏幕,请在GKGameCenterControllerDelegate添加此方法:

- (void)gameCenterViewControllerDidFinish:(GKGameCenterViewController *)gameCenterViewController {
    [gameCenterViewController dismissViewControllerAnimated:YES completion:^{

    }];
}