Как я могу отобразить все доступные таблицы лидеров Game Center, а не автоматически отображать таблицу лидеров по умолчанию?

Чтобы загрузить таблицу лидеров Game Center, я сейчас звоню:

-(void) showLeaderboard:(NSString*)leaderboardId
{
    GKLeaderboardViewController *viewController = [GKLeaderboardViewController new];
    viewController.leaderboardDelegate = self;
    if (leaderboardId)
    {
        viewController.category = leaderboardId;
    }

    [[self topViewController] presentViewController:viewController animated:YES completion:nil];
}

Однако это всегда загружает список лидеров по умолчанию, а затем пользователь сильно нажимает кнопку "Назад", чтобы просмотреть все доступные списки лидеров.

Так как мой метод вызывается из главного меню моей игры, это не совсем подходит, чтобы перевести моего игрока в таблицу лидеров 1-го уровня.

Как я могу загрузить контроллер представления так, чтобы он уже просто отображал все доступные списки лидеров, а не заставлял моего игрока нажимать кнопку возврата...

Желаемый результат...Желаемый результат

Что просходит...

1 ответ

Решение

Вместо GKLeaderboardViewController, ты ищешь GKGameCenterViewController,

GKGameCenterViewController *viewController = [GKGameCenterViewController new];
viewController.viewState = GKGameCenterViewControllerStateLeaderboards;

Вы можете загрузить либо GKGameCenterViewController или же GKLeaderboardViewController в зависимости от погоды leaderboardId установлен или нет.

Если это не сработает, попробуйте этот обходной путь.

Другие вопросы по тегам