在我的应用中,应用会提示用户在打开时立即登录GameCenter。如果他们拒绝了,我想让他们在手动按下GameCenter按钮后能够登录。但是,我在启动时用于验证它们的相同代码不会在启动后随时打开身份验证视图控制器。有什么建议? 我正在使用:
GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer];
[localPlayer setAuthenticateHandler:(^(UIViewController* viewcontroller, NSError *error) {
由于
答案 0 :(得分:0)
它在documentation 的清单3-1“设置身份验证处理程序”中进行了解释(尽管有点不清楚)。这是我的工作:
-(void)authenticateLocalPlayer
{
GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer];
__weak GKLocalPlayer *blockLocalPlayer = localPlayer;
//Block is called each time GameKit automatically authenticates
localPlayer.authenticateHandler = ^(UIViewController *viewController, NSError *error)
{
[self setLastError:error];
if (viewController)
{
self.authenticationViewController = viewController;
[self disableGameCenter];
}
else if (blockLocalPlayer.isAuthenticated)
{
[self authenticatedPlayer:blockLocalPlayer];
}
else
{
[self disableGameCenter];
}
};
}
self.authenticationViewController
是strong
,所以我可以稍后再展示。