我有一个iPad应用程序,它支持整个应用程序中的纵向和横向。这是应用程序的iOS 7和iOS 8版本。
该应用是一个UITableViewController
,其中包含多个不同UIViewControllers
组的分段。我在应用程序中有一个选项可以再次显示教程,我已经在仅限纵向模式下创建了图像,因为它不太有意义(或者在Landscape中看起来很好)。
考虑到这一点,本教程采用加载到UIPageViewController
的图像形式。图像加载到viewDidLoad
中,按钮和布局工作得非常好。
问题
我想将UIPageViewController
限制为仅限纵向。
目前,我有:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[[UIDevice currentDevice] setValue:
[NSNumber numberWithInteger: UIInterfaceOrientationPortrait]
forKey:@"orientation"];
}
这在某种程度上有效。如果设备处于横向模式并且调用了教程,则会将其旋转为纵向。
但是,如果设备处于纵向状态,并且在调用教程后将其旋转为横向,则教程将旋转。
我如何阻止此视图在我的自定义UIPageViewController
类中旋转,以便它不会旋转到横向,无论它是在教程的开头,中间还是结尾。
对此的任何指导都将非常感激。
答案 0 :(得分:2)
查看UIViewController文档以获取方向支持,特别是shouldAutorotate:
和supportedInterfaceOrientations
- https://developer.apple.com/library/ios/DOCUMENTATION/UIKit/Reference/UIViewController_Class/index.html#//apple_ref/occ/instm/UIViewController/supportedInterfaceOrientations
我的第一个猜测是你想要像现在一样设置值,然后在自定义UIPageViewController子类中覆盖shouldAutorotate
并返回NO。
但是,请注意,您可能会在HIG合规性审核流程中受到影响,因为您的应用声称支持所有方向,但部分方案不支持。显然,这完全取决于审稿人,以及他们是否会像其他许多应用程序一样抓住它。