我有一个集合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)
}

09-11 10:12