У меня есть приложение для iOS с вкладками. Я хочу сделать только одну из вкладок портретной. Как я могу это сделать? Я уже пробовал решение в Как принудительно настроить ориентацию контроллера просмотра в iOS 8? и не помогло. Я поместил это в код .m контроллера представления. В этом контроллере представления есть как UIView, так и UITableView. см. изображение ниже; введите описание изображения здесь

Благодарю вас.

1
user3282227 30 Окт 2015 в 06:51

2 ответа

Лучший ответ

Во всем контроллере просмотра напишите этот код:

- (NSUInteger)supportedInterfaceOrientations
{
  return UIInterfaceOrientationMaskAll; //allow rotate landscape, portrait
}

И напишите этот код, в каком viewconroller вы хотите только портрет.

- (NSUInteger)supportedInterfaceOrientations
{ 
  return UIInterfaceOrientationMaskPortrait|UIInterfaceOrientationMaskPortraitUpsideDown; // portrait only 
}

ИЛИ вы можете использовать это:

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
    if ([self.window.rootViewController.presentedViewController isKindOfClass: [CompareViewController class]])
    {
        CompareViewController *compareController = (CompareViewController *) self.window.rootViewController.presentedViewController;

        if (compareController.isPresented)
            return UIInterfaceOrientationMaskLandscape;
        else return UIInterfaceOrientationMaskPortrait;
    }
    else return UIInterfaceOrientationMaskPortrait;
}
1
princ___y 30 Окт 2015 в 05:11

Попробуйте создать расширение UITabbarController, а затем переопределите ниже 2 метода в расширении:

supportedInterfaceOrientations
shouldAutorotate

И в обоих методах: просто подтвердите, if self.selectedIndex = 'particular index' (индекс вкладки, который вы хотите портретировать) и верните его соответственно.

0
Ankit Thakur 30 Окт 2015 в 04:03