iOS Objective-C:对<gkmodalrootviewcontroller> </gkmodalrootviewcontroller>的开始/结束外观转换的不平衡调用

时间:2012-08-13 11:27:59

标签: objective-c ios game-center transitions

我希望有人能够回答我的问题。

在我的应用程序中,我有一个按钮,你可以按下它,带你一个我创建的排行榜。在沙箱环境中,用户首次点击此环境时,系统会要求用户使用现有帐户或新帐户登录。

如果用户点击使用现有帐户,在验证其用户名,密码,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。

1 个答案:

答案 0 :(得分:0)

  

[...]用户第一次点击此按钮时,系统会要求用户使用现有帐户或新帐户登录

您如何为用户提供此界面以进行登录?它也是模态视图控制器吗?如果是这种情况,也许您没有正确地展示和解除这两个模态视图控制器。来自Apple的docs

  

任何视图控制器对象都可以一次呈现单个视图控制器。

在显示GKLeaderboardViewController之前尝试使用登录界面解除视图控制器。