出于某种原因,我不能使用任何自动功能来处理设备上的旋转(如 shouldAutorotateToInterfaceOrientation)。我总是不得不使用这个手动完成:
SOMETHING.view.transform = CGAffineTransformMakeRotation( angle * M_PI );
我真的不介意——我什至喜欢手动旋转所有东西。这工作正常,除了游戏中心。
我对旋转媒人没有任何问题——你可以在其中寻找人玩的窗口。
我会提到这一点以防万一,因为我在这里看到过类似的问题——但这不是我遇到的问题:
GKMatchmakerViewController *mmvc = [[[GKMatchmakerViewController alloc] initWithMatchRequest:request] autorelease];
mmvc.matchmakerDelegate = self;
[presentingViewController presentModalViewController:mmvc animated:YES];
mmvc.view.transform = CGAffineTransformMakeRotation( angle * M_PI );
这可以完美地旋转 Game Center 的媒人,但是我不知道如何为媒人之前的实际“登录”屏幕做同样的事情。我没有创建视图控制器,调用“身份验证”功能时,一切似乎都是自动完成的。而且由于它是自动完成的,我不知道如何控制结果视图。
- (void)authenticateLocalUser {
if (!gameCenterAvailable) return;
NSLog(@"Authenticating local user...");
if ([GKLocalPlayer localPlayer].authenticated == NO) {
[[GKLocalPlayer localPlayer] authenticateWithCompletionHandler:^(NSError *error) {
if ([GKLocalPlayer localPlayer].isAuthenticated)
{
// Perform additional tasks for the authenticated player.
[[GCHelper sharedInstance] findMatchWithMinPlayers:2 maxPlayers:2 viewController:nil];
}
}];
} else {
NSLog(@"Already authenticated!");
}
}
在这一点上,我已经得到了一个“登录”屏幕,我不知道如何控制它。
如何在不使用任何自动功能的情况下以编程方式更改该屏幕(以及输入 Apple ID 和密码的下一个屏幕)的方向?