我有一个简单的问题,但我查看了Apple的文档并进行了一些搜索,但我找不到答案.
是否有可能以编程方式提取Game Center的登录视图?我有一个需要Game Center的UIButton,如果客户端在应用程序打开时没有登录(iOS在启动时拉出登录视图),我想为用户提供第二次登录的机会.
解决方法
我假设您在启动时调用此GKLocalPlayer方法:-setAuthenticateHandler:(> = iOS7)或-authenticateWithCompletionHandler:(< = iOS6) 如果用户取消显示的登录屏幕,则再次调用这些方法不会执行任何操作,或者更确切地说,调用完成处理程序时会显示错误.然后,用户需要通过GameCenter应用程序或“设置”应用程序登录GameCenter. (测试时,您可以通过GameCenter应用程序登录,然后注销.之后,屏幕可以再次显示在您自己的应用程序中.)您可以显示UIAlertView,告诉用户通过GameCenter应用程序登录. 或者,我不知道这是否允许/可批准,但在iOS7中,authenticateHandler有一个viewController参数,用于保存登录屏幕.如果将此登录视图控制器存储在实例变量中并且用户取消登录,则可以稍后使用UINavigationController再次显示登录屏幕. 如果您尝试使用-presentViewController呈现已保存的登录视图控制器:animated:completion:视图控制器的“取消”按钮不再起作用,但使用UINavigationController会隐藏“取消”按钮并允许导航回您自己的视图控制器. 您还需要在用户登录后通过响应GKPlayerAuthenticationDidChangeNotificationName手动隐藏登录屏幕.似乎开发人员不打算这样做,所以它可能无法通过批准,但它可以工作!