У меня есть простой UIViewController, который использует XIB для своего интерфейса.
Как таковой, интерфейс просто содержит UIView, UIActivityIndicator и UILabel. У меня есть ограничения размера в Интерфейсном Разработчике, чтобы держать индикатор активности и метку по центру при вращении представления.
UIViewController установлен для возврата YES для книжной и альбомной ориентаций в методе -shouldAutorotateToInterfaceOrientation:
.
Представление добавляется в иерархию представлений вручную, используя
if (!activityOverlay)
activityOverlay = [[XBActivityOverlayViewController alloc] initWithNibName:@"XBActivityOverlayViewController" bundle:nil message:@"Connecting..."];
[activityOverlay.view setAlpha:0.0f];
[self.window addSubview:activityOverlay.view];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.3f];
[activityOverlay.view setAlpha:0.9f];
[UIView commitAnimations];
Проблема, с которой я столкнулся, заключается в том, что если устройство уже находится в альбомной ориентации, и в этот момент представление добавляется в иерархию, оно все еще находится в портретной ориентации и не поворачивается автоматически.
Что мне нужно сделать, чтобы добавить представление в той же ориентации, что и родительское представление?