Если я правильно понимаю ваш вопрос, вы можете использовать метод willRotateToInterfaceOrientation:duration:
в UIViewController.
Вы можете объявить две переменные UIView и установить соединения с ними, используя IB:
IBOutlet UIView *view1;
IBOutlet UIView *view2;
Затем в willRotateToInterfaceOrientation:duration:
вы можете поменять местами представления. Предполагая, что ваш ItemController является подклассом UIViewController, вы можете получить что-то вроде этого:
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
if (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft) || (toInterfaceOrientation == UIInterfaceOrientationLandscapeRight) {
[self setView:view1];
}
else {
[self setView:view2];
}
}
Когда пользователь поворачивает iPad, этот метод вызывается автоматически.
ПРИМЕЧАНИЕ: убедитесь, что вы установили shouldAutorotateToInterfaceOrientation:
для возврата YES
, и вам, возможно, придется проверить ориентацию, чтобы изначально установить для свойства представления правильный вид.
РЕДАКТИРОВАТЬ: Мой ответ предполагает, что у вас есть два вида с разными макетами / элементами, а не два вида, которые по сути одинаковы по размеру для разных ориентаций. Если последнее так, то, вероятно, есть лучший способ сделать это, используя только одно представление.