我已经在游戏中心中设置了我的排行榜。
当用户点击高分按钮时,如何实现这一目标,将它们带到游戏中心的特定排行榜?
有没有办法在不使用 UIWebView 中的特定链接的情况下执行此操作?
我希望游戏中心能够在应用外打开。我的应用专为 iOS7 及以上版本量身定制。
答案 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:^{
}];
}