Отключить вращение для одного элемента UITabbar

У меня есть контроллер uitabbar с 4 элементами панели вкладок, и у каждого элемента панели вкладок есть контроллер uinavigation.

Мне нужно было зафиксировать ориентацию одного элемента панели uitabbar только для Portrait. Итак, я реализовал следующий код:

Создал пользовательский контроллер панели вкладок и добавил в него следующий код:

MainTabBarController.m

-(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
{
    if (self.selectedViewController)
        return [self.selectedViewController supportedInterfaceOrientations];

    return UIInterfaceOrientationMaskPortrait;
}

-(BOOL)shouldAutorotate
{
    return YES;
}

Создал пользовательский контроллер навигации для использования в одном из элементов uitabbaritems и добавил в него следующий код:

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

-(BOOL)shouldAutorotate
{
    return YES;
}

и для контроллера uiview в пользовательском контроллере навигации я добавил следующий код:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

- (BOOL)shouldAutorotate
{
    return NO;
}

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait;
}

Приведенный выше код работает нормально. Моя проблема заключается в том, что если вы перейдете к элементу панели вкладок (ориентация которого заблокирована для Protrait), когда устройство уже находится в ландшафтном режиме, ориентация изменится на альбомную. Может кто-нибудь, пожалуйста, помогите мне, как решить мою проблему.

Спасибо, Ананд.

Ответы на вопрос(1)

Ваш ответ на вопрос