我正在使用Apple 的代码来显示GKGameCenterViewController
:
GKGameCenterViewController *gameCenterController = [[GKGameCenterViewController alloc] init];
if (gameCenterController != nil) {
gameCenterController.gameCenterDelegate = self;
[self presentViewController:gameCenterController animated:YES completion:nil];
}
这是描述上述代码的文本:
Game Center UI 由您的视图控制器显示 (iOS)
Game Kit 使用的约定是让您的视图控制器之一呈现 Game Kit 视图控制器。您的视图控制器充当它呈现的视图控制器的委托,以便在玩家完成查看呈现的屏幕时通知它。清单 2-1 显示了这种模式最常见的用途,即显示 Game Center 用户界面。Game Center 视图控制器显示许多不同的 Game Center 内容,因此大多数游戏都应该提供一个按钮,将玩家带到此屏幕,即使游戏还使用自定义用户界面显示 Game Center 内容。
当我使用推荐的代码时,我进入了这个屏幕(GameCenter Challenges),这不是我想要的:
我也试过这段代码:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"gamecenter:"]];
通过使用该代码,我进入了我希望显示的屏幕:
我误解了什么还是我做错了什么?第一段代码不应该把我带到主菜单吗?为什么不显示排行榜?
更新
我按照phix23viewState
的建议实施:
GKGameCenterViewController *gameCenterController = [[GKGameCenterViewController alloc] init];
if (gameCenterController != nil) {
gameCenterController.gameCenterDelegate = self;
gameCenterController.viewState = GKGameCenterViewControllerStateLeaderboards;
[self presentViewController:gameCenterController animated:YES completion:nil];
}
但是,它仍然显示相同的挑战屏幕,尽管我想/尝试显示排行榜屏幕。