【问题标题】:Force Landscape View on one UIViewController only仅在一个 UIViewController 上强制横向视图
【发布时间】:2016-11-24 00:52:20
【问题描述】:

我有一个只有肖像模式的应用程序。我只有一个视图控制器需要强制进入横向模式(客户签名视图),以便客户有更多的签名空间。

如何强制一个 ViewController 以横向模式显示。让其余部分保持纵向?

我已尝试将应用的常规部署信息设置为纵向,横向左侧

然后在签名视图上使用此代码

- (BOOL)shouldAutorotate {
    return YES;
}

并在所有其他视图控制器上返回 NO。但这似乎不起作用。

我也加入了

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

这可能吗?

【问题讨论】:

标签: ios objective-c uiviewcontroller


【解决方案1】:

您只是缺少下面的代码,如果您的 UIViewController 是导航控制器的根控制器,则需要将代码放在导航控制器中。希望这会有所帮助,祝你好运。

- (UIInterfaceOrientationMask)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskLandscape;
}

【讨论】:

  • 那个半工作。由于所有元素的布局都不正确,自动布局似乎被抛到了窗外。此外,如果我离开景观视图,所有其他视图现在都卡在景观中..
  • 您能否发布一张图片,说明您的情节提要与您使用的约束条件以及横向布局不正确的情况。所以我使用了这个流程并且它起作用了,navigationcontrollerA -> viewcontrollerA -> segue -> navigationcontrollerB -> viewcontrollerB,在 navB 中我设置了“supportedInterfaceOrientations”和“shouldAutorotate”,vcA 出现在纵向,vcB 出现在横向,我必须使用@ 987654322@ 从 vcB 弹出到 vcA。
【解决方案2】:

在签名视图控制器中尝试此代码

 - (void)viewDidLoad
{
    [super viewDidLoad];
    [[UIDevice currentDevice] setValue:[NSNumber numberWithInteger:UIInterfaceOrientationLandscapeLeft] forKey:@"orientation"];
}

-(void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
    [[UIDevice currentDevice] setValue:[NSNumber numberWithInteger:UIInterfaceOrientationPortrait] forKey:@"orientation"];
}

【讨论】:

    【解决方案3】:

    以下是它为我工作的方式:-

    -(UIInterfaceOrientationMask)supportedInterfaceOrientations
    {
        return UIInterfaceOrientationMaskLandscapeLeft;
    }
    
    and 
    
    - (BOOL)shouldAutorotate {
        return NO;
    }
    

    另一种方法是在 prepareForSegue 中定义方向和所需 VC 的固定方向,并在该 VC 中将 shouldAutorotate 设置为 NO。

    如果提到的代码对您不起作用,请告诉我。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-17
      • 1970-01-01
      • 2015-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多