我的应用使用Game Center。我尝试在VC加载时记录用户。 如果他以前登录过 - 很棒,它会将通知记录在最顶层。如果他没有登录 - 很棒,它会显示游戏中心登录VC。
但是,我想在他进入应用程序时不要通过Game Center登录VC来“跳转”用户。我想要一个按钮来调出Game Center登录VC,这很容易,所以只有当他点击按钮时,游戏中心登录VC才会出现。
问题是 - 我发现(通过试验和错误),如果我尝试登录用户,并且失败(例如,用户根本没有登录到游戏中心),如果我不在那个时刻带来Game Center登录VC - 在处理程序的第一次调用中 - 我不能在以后提起它。
我会解释 - 我实现了我所谈到的按钮,它带来了GC登录VC。如果我不尝试在加载时自动登录用户,按钮按预期工作。但是,如果我这样做,并且它失败了(无论出于何种原因),无论如何,按钮都不会使VC上升。
观察 -
我在stackoverflow上找到了this问题,但在那里找不到我的答案。
我的问题是:
我希望这很清楚,因为这是一个令人困惑的情况。 对不起,很长的帖子! 非常感谢您的时间!
答案 0 :(得分:1)
你保留了一些NSUserDefaults,例如&userHasAttemptedToUseGameCenter'。它从NO或undefined开始,这对你来说意味着NO。然后,当他们按下游戏中心按钮时,您设置为YES并尝试进行游戏中心身份验证。从那时起他们每次打开游戏时(或者至少每次他们去游戏中心相关的屏幕/功能,然后你进行游戏中心认证。
即使它的工作正常,因为你有一个游戏中心用户,这可能是一个痛苦,因为“欢迎回来'游戏中心横幅将在最初的几分钟内弹出并覆盖游戏UI的顶部。
如果您只是让游戏中心身份验证每次都出现但用户不想要它,我认为在3次尝试验证iOS失败后,将永远不再显示身份验证。如果他们以后改变主意并希望使用需要游戏中心的功能,那么您的用户将完全陷入困境。您只能因为游戏中心无法进行身份验证而检测到该情况!然后您可以做的就是告诉用户转到Game Center应用程序并登录。它的地狱测试。如果您的某个测试设备进入此锁定状态,则必须执行“重置所有内容和设置”。
如果在iOS8中有任何改善,请有人插话。