iOS 6 で画面の回転を処理するすべての方法 (ここ、Apple のドキュメント、および激しいグーグル) を読んだ後、何日も何日も xib を使用しているとき、私はまだこれにこだわっています。
私が達成しようとしているのは、いくつかのiPadのみのxibを使用することです。横向きのみで、残りのアプリは縦向きです。
ストーリーボードを使用していた場合、nav コントローラーをサブクラス化して回転をオーバーライドする方法は理解していますが、私は xib を使用していません。
私のアプリデリゲートで:
ICHomeController *homeController = [[ICHomeController alloc] init];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:homeController];
navController.navigationBarHidden = YES;
navController.navigationBar.barStyle = UIBarStyleBlackOpaque;
navController.navigationBar.tintColor = [UIColor grayColor];
self.navigationController = navController;
[self.window setRootViewController:self.navigationController];
[self.window makeKeyAndVisible];
return YES;
ここでのすべてのソリューションのように見えるものを試すことに加えて、私は自分のビューコントローラーで明らかなことを試しましたが、iOS 6 では呼び出されないことを理解しています。
// Older versions of iOS (deprecated)
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
return UIInterfaceOrientationIsLandscape(toInterfaceOrientation);
}
- (BOOL)shouldAutorotate {
return YES;
}
- (NSUInteger)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskLandscape;
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
return UIInterfaceOrientationLandscapeLeft;
}