我正在尝试从我的主菜单类中展示我的排行榜,但我遇到了一些错误。这是我的代码,
- (void) showLeaderboard
{
GKLeaderboardViewController *leaderboardController = [[GKLeaderboardViewController alloc] init];
if (leaderboardController != nil)
{
leaderboardController.leaderboardDelegate = self;
[self presentModalViewController: leaderboardController animated: YES];
}
}
- (void)leaderboardViewControllerDidFinish:(GKLeaderboardViewControl*)viewController
{
[self dismissModalViewControllerAnimated:YES];
}
我得到'没有接口声明presentModalViewController:动画''没有接口声明dismissModalViewControllerAnimated:。有人能告诉我正确的方法,我对这些东西没有多少经验。
答案 0 :(得分:1)
这是因为视图控制器及其子类上存在当前/解除视图控制器方法,并且您尝试使用SKNode的子类作为接收器来调用它们。为了解决这个问题,您需要获取对视图控制器子类的引用并将这些消息发送给它。最简单的方法可能是通过节点的视图窗口的根视图控制器。
- (void) showLeaderboard
{
GKLeaderboardViewController *leaderboardController = [[GKLeaderboardViewController alloc] init];
if (leaderboardController != nil)
{
leaderboardController.leaderboardDelegate = self;
[self.scene.view.window.rootViewController presentModalViewController: leaderboardController animated: YES];
}
}
- (void)leaderboardViewControllerDidFinish:(GKLeaderboardViewControl*)viewController
{
[self.scene.view.window.rootViewController dismissModalViewControllerAnimated:YES];
}