После еще одного исследования я не смог найти элегантного решения для этого. Поскольку повторная загрузка элементов из файла xib при каждом повороте выглядела медленной и устраняла любые данные, основанные на динамическом просмотре, я переключился на настройку на основе кода (то есть больше не было файлов xib).
Я решил создать такой метод:
// This is for an iPad root-level view controller.
- (void)setupForOrientation:(UIInterfaceOrientation)orientation {
if (UIInterfaceOrientationIsPortrait(orientation)) {
CGRect bounds = CGRectMake(0, 0, 768, 1004);
bkgImageView.frame = bounds;
// Other view positioning for portrait.
} else {
CGRect bounds = CGRectMake(0, 0, 1024, 748);
bkgImageView.frame = bounds;
// Other view positioning for landscape.
}
[self drawBackgroundForOrientation:orientation];
}
Этот метод вызывается из метода shouldAutorotateToInterfaceOrientation:
и передает новую ориентацию.