Как изменить ориентацию интерфейса с альбомной на портретную, когда в Objective C нажата кнопка «Назад» - PullRequest
0 голосов
/ 08 октября 2019

У меня есть этот проект, который требует горизонтальной ориентации для просмотра графика, и после нажатия кнопки «Назад» он должен вернуться в портретную ориентацию для просмотра меню Daily Graph и Carcadian Graph. Когда пользователь нажимает Daily Graph, он отображает график в альбомной ориентации, пользователь склонен держать свой телефон в альбомной ориентации, а когда нажата кнопка back, чтобы вернуться в меню, портретная ориентация работает плавно, но когда пользователь нажимает Carcadian Graphон показывает график в горизонтальной ориентации, тенденцию, пользователь будет держать свой телефон в горизонтальной ориентации, а когда нажата кнопка back, чтобы вернуться в menuVC, он просто остается в горизонтальной ориентации, которая должна быть портретной. Как я могу это исправить, нужна помощь, так как я новичок в Objective C. Спасибо

- (UIInterfaceOrientationMask)supportedInterfaceOrientations
{
    if (self.orientation == UIInterfaceOrientationLandscapeRight)
    {
        UINavigationController *navController =(UINavigationController*)[self.tabBarController selectedViewController];
    UIViewController *dispViewController = navController.viewControllers.lastObject;

        if ([dispViewController.nibName isEqualToString:@"dailyGraph_vc"] == YES || [dispViewController.nibName isEqualToString:@"circadianGraph_vc"] == YES)
        {
           return 0;
        }
        else
          {
            return UIInterfaceOrientationMaskPortrait;
          }
       }
      else
    {
      return 0;
   }
}

1 Ответ

0 голосов
/ 08 октября 2019

Вы можете сделать [[UIDevice currentDevice] setValue:@(UIDeviceOrientationPortrait) forKey:@"orientation"]; на viewWillDisappear или где-то еще. Он поддерживает анимационный блок UIView

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...