ios - 在 iPad 上的 UIPageViewController 中强制使用纵向模式

标签 ios objective-c ipad uiimageview uipageviewcontroller

我有一个 iPad 应用程序,它在整个应用程序中支持纵向和横向。这是应用程序的 iOS 7 和 iOS 8 版本。

该应用程序是一个 UITableViewController,具有多个 segues 到一组不同的 UIViewControllers。我在应用程序中有一个选项可以再次显示教程,并且我在仅纵向模式的方向上创建了图像,因为它没有太大意义(或者在横向模式下看起来不错)。

考虑到这一点,本教程采用将图像加载到 UIPageViewController 中的形式。图片加载到 viewDidLoad 中,按钮和布局效果非常好。

问题 我想将 UIPageViewController 限制为仅纵向。

目前,我有:

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];

    [[UIDevice currentDevice] setValue:
     [NSNumber numberWithInteger: UIInterfaceOrientationPortrait]
                                forKey:@"orientation"];

}

这在某种程度上是有效的。如果设备处于横向模式并且调用了教程,它会将其旋转为纵向。

但是,如果设备处于纵向模式并且我在调用教程后将其旋转为横向模式,则教程会随之旋转。

在我的自定义 UIPageViewController 类中究竟如何防止此 View 旋转,以便它永远不会旋转到 Landscape,无论它是在教程的开始、中间还是结束。

任何关于这方面的指导将不胜感激。

最佳答案

查看 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 合规性审核过程中受到打击,因为您的应用声称支持所有方向,但其中部分内容并不支持。显然,这完全取决于评论者,以及他们是否能捕获它,因为很多其他应用程序都这样做。

关于ios - 在 iPad 上的 UIPageViewController 中强制使用纵向模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26804336/

相关文章:

objective-c - 从 USB MIDI 键盘获取 MIDI,cocoa mac

objective-c - Xcode - 将大量整数保存到文件的最简化方法

ipad - 内存超过40MB时,基于Unity的应用程序在iPad 1上崩溃

iphone - CoreFoundation 中的 CFStringGetLength 导致 iOS 崩溃

ios - UITableView中的deleteObject错误,无法重复

ios - iphone 中调用电话中的callID 和地址簿中的记录id 是否相同?

ios - 如何找出属于当前 viewController 的导航 Controller ?

ios - 使用单点登录的 CloudKit 用户身份验证

java - 在 Objective-C 中加密并在 Java 中解密的算法

ios - 使用自动布局缩放垂直堆叠的按钮