【发布时间】:2014-12-14 10:18:22
【问题描述】:
我有一个按以下方式组织的游戏:
一个菜单 (ViewController) - 在 Storyboard 中制作 - 我在其中向游戏中心验证玩家身份并提供一个前往排行榜的按钮(效果很好)
制作 SKScene 的视图控制器,用于启动游戏 (GameScene)
一个名为 GameOverScene 的 SKscene 会在游戏失败时出现。
我想在 GameOverScene 上有一个按钮来带我进入排行榜
这是我在 GameOverScene 中用于显示排行榜的代码:
-(void)showLeaderboardAndAchievements:(BOOL)shouldShowLeaderboard{
GKGameCenterViewController *gcViewController = [[GKGameCenterViewController alloc] init];
gcViewController.gameCenterDelegate = self;
if (shouldShowLeaderboard) {
gcViewController.viewState = GKGameCenterViewControllerStateLeaderboards;
gcViewController.leaderboardIdentifier = @"wurst.highscore";
}
else{
gcViewController.viewState = GKGameCenterViewControllerStateAchievements;
}
UIViewController *vc = self.view.window.rootViewController;
[vc presentViewController:gcViewController animated:YES completion:nil];
}
当相应的按钮被触摸并且没有任何反应时,我运行这段代码:我收到一个日志错误或警告说:
" 警告:尝试呈现不在窗口层次结构中的视图!"
为什么它试图在 MenuViewController 上而不是在 GameViewController 上呈现它(这是 SKScenes 发生的视图控制器?
非常感谢您的帮助
【问题讨论】:
标签: ios objective-c viewcontroller