У меня есть игра организована следующим образом:SKScene Leaderboards
меню (ViewController) - сделано в раскадровке - в котором я аутентификации игрока GameCenter и обеспечить кнопку, чтобы перейти к Leaderboards (это работает отлично)
ViewController, в котором сделан SKScene, который начинает игру (GameScene)
SKscene под названием GameOverScene, который появляется, когда игра проиграна.
Я хочу иметь кнопку на 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 (который является ViewController, на которой SKScenes место?
Я бы очень признателен за помощь
Извините, что спросить, но как это сделать что? –
Ознакомьтесь с некоторыми учебными пособиями по n et, [это, например] (http://www.alexefish.com/post/522641eb31fa2a0015000002). – Alexander
Значит, вы говорите, что я должен добавить функцию showleaderboard в GameViewController и нажать кнопку из игрыOverScene, чтобы запустить ее через делегат? –