我希望有人能够回答我的问题。
在我的应用程序中,我有一个按钮,你可以按下它,带你一个我创建的排行榜。在沙箱环境中,用户首次点击此环境时,系统会要求用户使用现有帐户或新帐户登录。
如果用户点击使用现有帐户,在验证其用户名,密码,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。
答案 0 :(得分:0)
[...]用户第一次点击此按钮时,系统会要求用户使用现有帐户或新帐户登录
您如何为用户提供此界面以进行登录?它也是模态视图控制器吗?如果是这种情况,也许您没有正确地展示和解除这两个模态视图控制器。来自Apple的docs:
任何视图控制器对象都可以一次呈现单个视图控制器。
在显示GKLeaderboardViewController
之前尝试使用登录界面解除视图控制器。