【问题标题】:Landscape Segue Between Two Portrait UIViewControllers两个纵向 UIViewController 之间的横向 Segue
【发布时间】:2015-09-04 03:56:38
【问题描述】:

我只允许通过以下代码在 iPhone 上查看 UIViewController 的设备方向肖像:

- (BOOL)shouldAutorotate
{
    NSString *device = [UIDevice currentDevice].model;
    return [device rangeOfString:@"iPhone"].location != NSNotFound ? NO : YES;
}

这工作正常 - 当我在查看 ViewController A 的同时旋转我的 iPhone 时,视图不会旋转。同样,当我在查看 ViewController B 的同时旋转 iPhone 时,视图不会旋转。但是,当我在查看 ViewController A 的同时旋转 iPhone 时,点击一个以模态方式呈现 ViewController B 的按钮,显示 segue 动画(水平翻转)是横向的,而 ViewController B 以横向显示。

如何强制转场也为纵向而不旋转 ViewController B?

【问题讨论】:

  • 我认为水平翻转转场不适用于纵向布局。尝试使用不同的 segue。
  • 不,它适用于纵向布局。如果我不旋转设备,它看起来很完美。此外,如果我不允许通过目标的横向模式 - 它总是看起来不错,但我想在 iPad 上允许横向。
  • segue出现ViewController B出现时可以手动设置方向。
  • 但是segue不会翻转纵向...它会翻转横向,看起来不正确。
  • 您是否尝试过创建自己的自定义转场?在那里您应该能够定义要使用的方向。 stackoverflow.com/questions/13010655

标签: ios objective-c uistoryboardsegue uiinterfaceorientation


【解决方案1】:

在我的测试中,我发现shouldAutorotate 只是您为防止设备旋转而必须做的事情的一部分。 shouldAutorotate 告诉系统是否应该在有人将设备旋转到不同的允许方向时立即旋转所有视图。

我的建议是防止横向以外的更多方向(允许 LandscapeLeft 和 LandscapeRight)。我的意思是你应该在两个 ViewController 中覆盖 supportedInterfaceOrientations 并告诉应用它应该只允许横向而不是默认(允许除了倒置之外的所有方向)。

【讨论】:

    猜你喜欢
    • 2011-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多