Таблица лидеров Game Center: «Сделано» не вызывает делегата при просмотре таблиц лидеров

#ios #gamekit #game-center

#iOS #gamekit #game-center

Вопрос:

У меня есть две таблицы лидеров в универсальном приложении (iPhone / iPad). Я создаю GKLeaderboardViewController, используя приведенный ниже код:

 GKLeaderboardViewController* lvc = [[GKLeaderboardViewController alloc] init];  
lvc.category = [self isIpad] ? @"ipadmain" : @"iphonemain";
lvc.leaderboardDelegate = self;
  

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

Однако, если я перейду к обзору таблиц лидеров с помощью кнопки «Таблицы лидеров» на панели инструментов GKLeaderboardViewController, «Готово» не работает на экране обзора (делегат не вызывается). Если я снова вернусь к определенной доске, «Готово» сработает.

Ответ №1:

В вашем сообщении недостаточно кода, чтобы понять, что происходит. То, что вы опубликовали, не повлияет на функцию обратного вызова делегата, за исключением строки, в которой вы задаете фактического делегата. Поскольку вы правильно настроили делегат, вы должны получать обратный вызов.

Когда вы говорите, что «делегат» не вызывается, делегат все еще существует? Контроллер просмотра таблицы лидеров исчезает с экрана?

Комментарии:

1. Да, делегат все еще на месте. Дело в том, что я перешел в таблице лидеров с определенной таблицы лидеров на экран обзора (где отображаются все таблицы лидеров). На этом экране кнопка «Готово» не работает. Таблица лидеров не закрывается. Метод делегирования не вызывается. Однако эта проблема решается самостоятельно. Без каких-либо изменений все работает нормально прямо сейчас. Я просто подумал, может быть, у кого-то был подобный опыт с GKLeaderboardViewController.