我希望有人能够回答我的问题。
在我的应用程序中,我有一个按钮,您可以按它进入我创建的排行榜。在沙盒环境中,用户第一次点击此按钮时,系统会要求用户登录 - 使用现有帐户或新帐户。
如果用户点击使用现有帐户,在验证他们的用户名、密码、GameCenter 显示名称等之后,当屏幕关闭以返回带有排行榜按钮的屏幕时 - 这些按钮现在都不会响应。用户被迫退出应用程序(以及通过双击主页按钮的实例)并重新打开应用程序,现在他们可以像往常一样玩游戏,甚至可以毫无问题地点击排行榜。
我想知道为什么会这样,而我似乎拥有的唯一线索是通过 Xcode 中的输出屏幕,它在运行时显示:
ClubHistory[4989:707] Unbalanced calls to begin/end appearance transitions for <GKModalRootViewController: 0x1bcd90>.
从查找其他问题来看,这似乎意味着打开/关闭 View 的冲突。但我真的不明白我应该在哪里实现它。
首先打开排行榜的部分代码是:
-(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。
最佳答案
[...] the first time a user clicks on this the user is asked to sign in - with an existing account or a new account
您如何呈现此界面供用户登录?它也是模态视图 Controller 吗?如果是这种情况,也许您没有正确地呈现和关闭这两个模态视图 Controller 。来自 Apple 的 docs :
Any view controller object can present a single view controller at a time.
在呈现 GKLeaderboardViewController
之前尝试使用登录界面关闭 View Controller。
关于objective-c - iOS Objective-C : Unbalanced calls to begin/end appearance transitions for <GKModalRootViewController>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11933401/