iOS6 の自動回転と向きに問題があります。iOS5 で行っていたように動作しないこと。これがサンプルコードです。
implementation mainProgram
// view controller is defined in landscape mode (.xib file)
// The preferredInterfaceOrientationForPresentation and supportedInterfaceOrientations have not been defined because they give me problems with getting the orientation right of other calling classes
-(IBAction)somButtonPressed:(id)sender{
[self presentViewController:inputText animated:NO completion:nil];
}
@end
/////////////////////////////////////////////////////////
// This has has several UITextField
// The view of this controller is defined as landscape in .xib
implementation inputText
- (void)viewDidLoad
{
[super viewDidLoad];
}
- (BOOL)shouldAutorotate {
return YES;
}
#if 0 // Disabled
- (NSUInteger)supportedInterfaceOrientations {
return UIInterfaceOrientationLandscapeRight;
}
#endif
#if 1 // Enabled
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
return UIInterfaceOrientationLandscapeRight;
}
#endif
@end
質問/観察: 1. UIInterfaceOrientationLandscapeRight の戻り値を持つ inputText で supportedInterfaceOrientations が有効になっている場合、プログラムは、supportedInterfaceOrientations とまったく同じであっても、preferredInterfaceOrientationForPresentation が無効な方向に設定しようとしていると言って失敗します。
- inputText の UITextField の 1 つにテキストを入力しようとすると、キーボードが LandscapeRight ではなくポートレート モードで表示されます。inputText コントローラーのビューは、landscapeRight の向きで問題なく表示されます。
それらはすべてios6のバグのようです。他の誰かがそれらの問題に遭遇しましたか?