在Objective C中点击后退按钮时如何将界面方向从横向更改为纵向

Posted

技术标签:

【中文标题】在Objective C中点击后退按钮时如何将界面方向从横向更改为纵向【英文标题】:How to change interface orientation from landscape to portrait when back button is tapped in Objective C 【发布时间】:2019-10-08 07:49:24 【问题描述】:

我有这个项目需要横向查看图表,一旦点击后退按钮,它应该返回纵向查看菜单 Daily GraphCarcadian 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;
   

【问题讨论】:

你想强制一个viewController横向吗? Rotate to Portrait Orientation when back button pressed的可能重复 【参考方案1】:

你可以在viewWillDisappear 或其他地方做[[UIDevice currentDevice] setValue:@(UIDeviceOrientationPortrait) forKey:@"orientation"];。它支持 UIView 动画块

【讨论】:

感谢您的回答。我试过了,当我的 iPhone 中的 AutoRotate 被锁定时它可以工作,但是当它被解锁时。它不工作。

以上是关于在Objective C中点击后退按钮时如何将界面方向从横向更改为纵向的主要内容,如果未能解决你的问题,请参考以下文章

将按钮禁用为灰色-Objective C

点击后退按钮时如何将 <select> 元素更改回默认值?

如何取消选中后退按钮上的复选框?

Objective-C:从AppsDelegate呈现/推送ViewController后后退按钮消失

在Objective C中如何更改localNotification的视图

点击浏览器后退按钮时如何刷新 ASP .NET MVC 页面