Я работаю в Xcode 4.5.2, ориентируясь на iOS6 для приложения для iPad, используя раскадровки и переходы. Преамбула: мой корневой контроллер (загруженный делегатом приложения) представляет собой заставку только с изображением, кнопкой обновления и кнопкой открытия. Приложение загружается несколько секунд. У меня есть shouldAutorotate и supportInterfaceOrientations во всех трех моих полноэкранных контроллерах. Для уведомления о повороте я использую следующие два метода в моем корневом контроллере представления:
- (void)awakeFromNib
{
[UIDevice.currentDevice beginGeneratingDeviceOrientationNotifications];
[NSNotificationCenter.defaultCenter addObserver:self
selector:@selector(orientationChanged:)
name:UIDeviceOrientationDidChangeNotification
object:nil];
}
- (void)orientationChanged:(NSNotification *)notification
{
UIDeviceOrientation deviceOrientation = [UIDevice currentDevice].orientation;
if (UIDeviceOrientationIsLandscape(deviceOrientation))
{
// Landscape
CGRect rect = _libraryViewController.libraryTableBorder.frame;
_libraryViewController.libraryTableBorder.frame = rect;
_libraryViewController.libraryTableBorder.image = [UIImage imageNamed:@"LibraryBorder_L.png"];
}
else if (UIDeviceOrientationIsPortrait(deviceOrientation))
{
// Portrait
CGRect rect = _libraryViewController.libraryTableBorder.frame;
_libraryViewController.libraryTableBorder.frame = rect;
_libraryViewController.libraryTableBorder.image = [UIImage imageNamed:@"LibraryBorder_P.png"];
}
}
У меня есть такие же методы в LibraryViewController, и они отлично работают. У меня есть другой контроллер основного представления (entryView), который имеет те же методы без вызовов для libraryTableBorder. Независимо от того, из какого поворота устройство выходит или переходит к представлению ввода, граница таблицы меняется правильно. И, при переходе из библиотеки либо в entryView, либо в заставку, представления правильные.
Проблема заключается в переходе от заставки в альбомной ориентации к библиотеке. Переход в библиотеку в Potrait работает нормально, и отображаемая граница является портретной рамкой. Но в ландшафте он также отображает границу портрета. Как я могу заставить границу библиотеки отображаться в альбомной ориентации при переходе из корневого представления, когда она находится в альбомной ориентации?
Будем признательны за любую помощь в решении этой головоломки!!!