ios:以编程方式请求Game Center登录?

时间:2013-01-14 21:31:25

标签: ios center gkmatchmaker

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

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

1 个答案:

答案 0 :(得分:3)

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

如果用户取消显示的登录屏幕,则再次调用这些方法不会执行任何操作,或者更确切地说,调用完成处理程序时会显示错误。然后,用户需要通过GameCenter应用程序或“设置”应用程序登录GameCenter。 (测试时,您可以通过GameCenter应用程序登录,然后注销。之后,屏幕可以再次显示在您自己的应用程序中。)您可以显示UIAlertView,告诉用户通过GameCenter应用程序登录。

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

如果您尝试使用-presentViewController:animated:completion:显示已保存的登录视图控制器,则视图控制器的“取消”按钮不再起作用,但使用UINavigationController会隐藏“取消”按钮并允许导航回您自己的视图控制器。

您还需要在用户登录后通过回复GKPlayerAuthenticationDidChangeNotificationName手动隐藏登录屏幕。似乎开发人员不打算这样做,所以它可能无法通过批准,但它确实有效!