繁体   English   中英

如何在iOS 7中支持多个屏幕方向而不在堆栈上推送另一个视图控制器?

[英]How to support multiple screen orientations in iOS 7 without pushing another view controller on the stack?

我一直试图让多个方向与单个视图控制器一起工作。 目前,它会检查设备方向和视图控制器。 然后根据它是横向还是纵向切换。 问题是它在纵向上工作正常,但由于它在横向上推动堆栈上的另一个视图时,后退按钮链接到纵向视图而不是我们想要返回的实际屏幕(这是一步之遥) 。

if (UIDeviceOrientationIsLandscape(deviceOrientation) &&
        self.navigationController.visibleViewController == self)
    {
        self.landscapeViewController =
        [self.storyboard instantiateViewControllerWithIdentifier:@"view_landscape"];

        [self.navigationController pushViewController:self.landscapeViewController
                                             animated:NO];

    }
    else if (UIDeviceOrientationIsPortrait(deviceOrientation) &&
             self.navigationController.visibleViewController == self.landscapeViewController)
    {
        [self.navigationController popViewControllerAnimated:NO];
    }

我不能以模态方式呈现景观视图控制器,因为涉及导航控制器。

另一件事是我为每个方向实例化相同的视图控制器(使用相同的类但链接到故事板中的不同标识符)。

你要做的事情真的很糟糕,而且违背了苹果做事的方式。

有一种称为Autolayout的东西,您可以使用它设计单个视图以在横向和纵向模式下工作。

您可以以编程方式处理或仅使用自动布局取决于您的要求。只是喜欢这个链接

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM