Как правило, ориентация должна изменяться только с книжной на альбомную (или наоборот), когда пользователь поворачивает устройство.
Однако, если вы хотите, чтобы ваш RootViewController всегда представлял свой вид в портретной ориентации, а ваш OtherViewController всегда представлял его в горизонтальной плоскости, это достаточно просто.
В вашем RootViewController'е .h:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
В вашем OtherViewController'е .h:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
}
Хотя это, вероятно, было бы лучше, поскольку допускало бы как горизонтальное, так и горизонтальное вращение:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return UIInterfaceOrientationIsLandscape(interfaceOrientation);
}