В реализации UIViewController я переопределяю метод shouldAutorotateToInterfaceOrientation и возвращаю YES (или TRUE). Также я переопределил этот метод:
-(void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
if (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft || toInterfaceOrientation == UIInterfaceOrientationLandscapeRight) {
image.frame = CGRectMake(448, 381, 128, 113);
progresView.frame = CGRectMake(448, 498, 130, 11);
activityIndicator.frame = CGRectMake(448, 514, 20, 20);
statusLabel.frame = CGRectMake(473, 534, 97, 18);
} else {
image.frame = CGRectMake(335, 643, 128, 113);
progresView.frame = CGRectMake(335, 760, 130, 11);
activityIndicator.frame = CGRectMake(335, 776, 20, 20);
statusLabel.frame = CGRectMake(360, 776, 97, 18);
}
}
Но когда я играю в приложение на симуляторе или устройстве, вращение не работает. Показывается только в портретном режиме. Что я делаю неправильно? есть идеи?
P.S. Я использую XCode 4.0.2 и приложение для iPad