Я работаю в Xcode 4.5.2, ориентируясь на iOS6 для iPad-приложения, используя раскадровки и segues. Преамбула: мой корневой контроллер (загруженный делегатом приложения) представляет собой заставку с изображением, кнопкой обновления и кнопкой открытия. Для загрузки приложения требуется несколько секунд. У меня должно быть Autorotate и поддерживаетсяInterfaceOrientations во всех трех моих полноэкранных контроллерах. Для уведомления о ротации я использую следующие два метода в контроллере корневого представления:
- (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), который имеет те же методы без вызовов для библиотеки TableBorder. Независимо от того, какая ротация происходит от устройства или идет в представление входа, граница таблицы сворачивается правильно. И, переходя из библиотеки в entryView или во всплеск, представления верны.
Проблема идет из представления всплеска в ландшафте в библиотеку. Переход в библиотеку в Потрейте отлично работает, а граница отображается на границе с портретом. Но в ландшафте также отображается граница портрета. Как я могу получить границу библиотеки для отображения в ландшафте при выходе из корневого представления, когда она находится в ландшафте?
Любая помощь в решении этой головоломки была бы высоко оценена!!!