ios:以编程方式请求Game Center标志

我有一个简单的问题,但我查看了Apple的文档并做了一些搜索,但找不到答案。

是否有可能以编程方式拉起Game Center的登录视图? 我有一个需要Game Center的UIButton ,如果客户端在应用程序打开时未登录(iOS在启动时拉起登录视图),我想为用户提供第二次登录机会。


我假设您在启动时调用了此GKLocalPlayer方法: -setAuthenticateHandler: (> = iOS7)或-authenticateWithCompletionHandler: (<= iOS6)

如果用户取消提供的登录屏幕,则再次调用这些方法什么也不做,或者更确切地说,调用完成处理程序时会报错。 然后用户需要通过GameCenter应用程序或通过设置应用程序登录到GameCenter。 (测试时,您可以通过GameCenter应用程序登录,然后注销,之后屏幕可以再次显示在您自己的应用程序中。)您可以显示一个UIAlertView,告诉用户通过GameCenter应用程序登录。

或者,我不知道这是允许/可以接受的,但在iOS7中, authenticateHandler具有一个保存登录屏幕的viewController参数。 如果将此登录视图控制器存储在实例变量中,并且用户取消登录,则稍后可以使用UINavigationController再次显示登录屏幕。

如果您尝试使用-presentViewController:animated:completion:呈现保存的登录视图控制器-presentViewController:animated:completion:视图控制器的取消按钮不再有效,但使用UINavigationController隐藏取消按钮并允许导航回到您自己的视图控制器。

您还需要在用户通过响应GKPlayerAuthenticationDidChangeNotificationName登录后手动隐藏登录屏幕。 似乎开发人员无意做到这一点,所以它可能无法通过审批,但它可行!

链接地址: http://www.djcxy.com/p/11697.html

上一篇: ios: programmatically ask for Game Center sign

下一篇: std::sort without copy construction