我希望有人能够回答我的问题。
在我的应用程序中,我有一个按钮,您可以按该按钮将您带到我创建的排行榜。在沙盒环境中,用户首次单击时会被要求使用现有帐户或新帐户登录。
如果用户单击使用现有帐户,则在验证其用户名,密码,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。
最佳答案
[...]用户第一次单击时,要求用户使用现有帐户或新帐户登录
您如何显示此界面供用户登录?它也是Modal View Controller吗?如果是这种情况,则可能您没有正确显示和关闭这两个Modal View Controller。从苹果的docs:
任何视图控制器对象一次只能显示一个视图控制器。
在显示GKLeaderboardViewController
之前,请尝试使用登录界面关闭View Controller。
关于objective-c - iOS Objective-C:对<GKModalRootViewController>的开始/结束外观转换的不平衡调用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11933401/