何らかの理由で、デバイスの回転を処理するための自動関数 (shouldAutorotateToInterfaceOrientation など) を使用できません。これを使用して、常に手動で行う必要がありました。
SOMETHING.view.transform = CGAffineTransformMakeRotation( angle * M_PI );
私はそれを本当に気にしません - 私は手動ですべてを回転させるのが好きです。Game Centerを除いて、これはうまくいきました。
マッチ メーカー (一緒にプレイする相手を探すウィンドウ) をローテーションすることに問題はありません。
同様の質問がここで尋ねられたのを見たので、念のためこれに言及しますが、それは私が抱えている問題ではありません:
GKMatchmakerViewController *mmvc = [[[GKMatchmakerViewController alloc] initWithMatchRequest:request] autorelease];
mmvc.matchmakerDelegate = self;
[presentingViewController presentModalViewController:mmvc animated:YES];
mmvc.view.transform = CGAffineTransformMakeRotation( angle * M_PI );
これにより、Game Center のマッチメーカーが完全に正常に回転しますが、マッチメーカーの前にある実際の「サインイン」画面で同じことを行う方法がわかりません。私が作成したView Controllerはありません。「Authenticate」関数を呼び出すと、すべてが自動的に行われるようです。自動的に行われるため、結果のビューを制御する方法がわかりません。
- (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とパスワードを入力する次の画面)の向きをプログラムで変更するにはどうすればよいですか?