Я не знаю, но это работает для меня. Если кто-то может описать реальную причину, почему это работает таким образом, я буду очень рад .... Я звоню через appdelegate
[(myAppDelegate*)[[UIApplication sharedApplication] delegate]gameCenter];
ииз appdelegate я вызываю метод rootviewcontroller, например
-(void)gameCenter
{
[rootViewController gameCenterLeaderboard];
}
, а в rootviewcontroller есть метод
-(void)gameCenterLeaderboard
{
GKLeaderboardViewController* leaderboardVC = [[[GKLeaderboardViewController alloc] init] autorelease];
if (leaderboardVC != nil) {
leaderboardVC.leaderboardDelegate = self;
[self presentModalViewController: leaderboardVC animated: YES];
}
}
, следующий метод также переопределяется в rootviewcontroller
- (void)leaderboardViewControllerDidFinish:(GKLeaderboardViewController *)leaderboardController
{
[self dismissModalViewControllerAnimated:YES];
}