iOS Objective-C: несбалансированные вызовы для начала/завершения перехода внешнего вида для ‹GKModalRootViewController›

Я надеялся, что кто-то сможет ответить на мой вопрос.

В моем приложении у меня есть кнопка, которую вы можете нажать, чтобы перейти к таблице лидеров, которую я создал. В среде «песочницы» при первом нажатии этой кнопки пользователю предлагается войти в систему — с существующей учетной записью или с новой учетной записью.

Если пользователь нажмет на использование существующей учетной записи после проверки своего имени пользователя, пароля, отображаемого имени GameCenter и т. д., когда экран закроется, чтобы вернуться к экрану с кнопкой таблицы лидеров — ни одна из кнопок теперь не будет реагировать. Пользователь вынужден выйти из приложения (и экземпляра через двойной щелчок кнопки «Домой») и снова открыть приложение, где теперь он может играть как обычно и даже без проблем нажимать на таблицу лидеров.

Мне было интересно, почему это так, и единственная подсказка, которая у меня есть, - это экран вывода в Xcode, который говорит во время работы:

ClubHistory[4989:707] Unbalanced calls to begin/end appearance transitions for <GKModalRootViewController: 0x1bcd90>.

Из поиска других вопросов кажется, что это может означать столкновение открывающихся/закрывающихся представлений. Но я не очень понимаю, где я должен реализовать это.

Часть кода, которая открывает таблицу лидеров в первую очередь:

-(void)leaderboardViewControllerDidFinish:(GKLeaderboardViewController *)viewController
{
[self dismissModalViewControllerAnimated:YES];
}

-(IBAction ) showLeaderboard
{
GKLeaderboardViewController *leaderboardController = [[GKLeaderboardViewController alloc]init];
if (leaderboardController != NULL)
    {
    leaderboardController.category = self.currentLeaderBoard;
    leaderboardController.timeScope = GKLeaderboardTimeScopeWeek;
    leaderboardController.leaderboardDelegate = self;
    [self presentModalViewController: leaderboardController animated:YES];
    }
}

Возможно, изменение, которое мне нужно сделать, сделано здесь.

Я искал в Интернете похожие проблемы, но безрезультатно. Кто-нибудь знает, как я могу решить эту проблему?

Всем спасибо,

Энди.

///// Быстрое редактирование: Просто чтобы уточнить, у меня включен ARC для моего приложения.


person user1309044    schedule 13.08.2012    source источник


Ответы (1)


[...] когда пользователь нажимает на это в первый раз, пользователю предлагается войти в систему - с существующей учетной записью или новой учетной записью

Как вы представляете этот интерфейс для входа пользователя? Это также контроллер модального представления? Если это так, возможно, вы неправильно представляете и отклоняете эти два контроллера модального представления. Из документов от Apple:

Любой объект контроллера представления может одновременно представлять один контроллер представления.

Попробуйте закрыть View Controller с помощью интерфейса входа перед тем, как представить файл GKLeaderboardViewController.

person Bell App Lab    schedule 24.04.2013