8

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

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

4

1 回答 1

5

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

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

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

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

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

于 2014-01-03T03:01:11.343 回答