Поддержка всех ориентаций в morenavigationcontroller и дочернем контроллере просмотра внутри tabbarcontroller iOS 6

У меня есть приложение с вкладками. Я установил фиксированную ориентацию для вкладок, установив контроллер панели вкладок в контроллер корневого представления окна, а затем переопределив поведение навигационного контроллера и таббаконтроллера с помощью подкласса (хотя и не рекомендуется). Теперь ориентация работает на всех вкладках, за исключением дополнительного контроллера навигации и его дочерних контроллеров просмотра. Я знаю, что проблема в том, что уведомление о повороте устройства не передается дочерним контроллерам просмотра внутри контроллера навигации в контроллере панели вкладок. Кроме того, свойство more navigationcontroller доступно только для чтения.

Моя проблема в том, что я хочу поддерживать всю ориентацию в контроллере моренавигации, а также в контроллерах просмотра дочерних элементов. Теперь shoulautorotate внутри дочерних контроллеров представления контроллера morenavigation не вызывается.


person i.AsifNoor    schedule 01.11.2012    source источник
comment
См. аналогичную проблему и ее решение по адресу stackoverflow.com/questions/13622194/   -  person Nomiii    schedule 16.03.2014
comment
Я решил эту проблему. iOS 6 и ios 7 имеют разные методы обработки ориентации. Контроллер вида сверху определяет поддержку ориентации для всех своих дочерних элементов. Например, если родительский контроллер представления поддерживает только портретную ориентацию, то дочерний контроллер представления не может принудительно использовать альбомную ориентацию. Но если вы все же хотите добиться этого, вы можете представить дочерний контроллер представления.   -  person i.AsifNoor    schedule 15.04.2014


Ответы (1)


После iOS 6 Apple изменила принцип работы ориентации в приложениях. Пожалуйста, посмотрите следующую тему. Это очень помогает

Контроллер панели вкладок с ориентацией навигационных контроллеров iOS 6

Или вы можете создать свой собственный tabbarcontroller и реализовать следующие методы

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // You do not need this method if you are not supporting earlier iOS Versions
    return [self.selectedViewController shouldAutorotateToInterfaceOrientation:interfaceOrientation];
}

-(NSUInteger)supportedInterfaceOrientations
{
    return [self.selectedViewController supportedInterfaceOrientations];
}

-(BOOL)shouldAutorotate
{
    return YES;
}
person Aqib Mumtaz    schedule 15.04.2014