我有一个集合viewcontroller->GameViewController->SKScene
在skscene中,我试图显示一个游戏中心排行榜,上面有这个代码块:
var gcVC: GKGameCenterViewController = GKGameCenterViewController()
gcVC.gameCenterDelegate = self
gcVC.viewState = GKGameCenterViewControllerState.leaderboards
gcVC.leaderboardIdentifier = "leaderboardID"
self.view?.window?.rootViewController?.present(gcVC, animated: true, completion: nil)
我得到的错误是:
2018-07-14 21:29:15.409830-0400 AppName[5266:1674334]警告:尝试在其视图不在窗口层次结构中的情况下显示!
如果初始视图是collectionviewcontroller,则它不起作用。如果它是gameviewcontroller,它就是。
我想我需要让gameviewcontroller显示排行榜,但我不知道如何访问它。
(请记住,gameviewcontroller不是rootviewcontroller,也没有导航控制器)
感谢您的帮助!
最佳答案
您可以使用它从ViewController
中获取最新的呈现rootViewController
,
if let currentVC = self.view.window?.rootViewController?.childViewControllers.last {
currentVC.present(gcVC, animated: true, completion: nil)
}