[英]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.