在 iPad 中未调用supportedInterfaceOrientations

Posted

技术标签:

【中文标题】在 iPad 中未调用supportedInterfaceOrientations【英文标题】:supportedInterfaceOrientations not called in iPad 【发布时间】:2016-02-08 16:26:31 【问题描述】:

我有一个 UITabBarController 子类,它有以下代码:

class TabBarController: UITabBarController 

// MARK: Methods

override func viewDidLoad() 

    super.viewDidLoad()



override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask 

    print(self.selectedIndex)
    if self.selectedIndex == 1 
        return .Portrait
    

    return .All


   


supportedInterfaceOrientations 函数仅在我从 iphone 执行应用程序时调用。如果我从我的 iPad mini 执行应用程序,它不会被调用。知道这种行为的原因吗?

【问题讨论】:

【参考方案1】:

这很奇怪,但是如果我从 iPad 的设备方向中取消选择 Upside Down,则会调用 supportedInterfaceOrientations

更新:

如果启用“常规”中的“需要全屏”设置,将允许方向委托方法 shouldAutorotatepreferredInterfaceOrientationsupportedInterfaceOrientations 触发。

【讨论】:

将 UIRequiresFullScreen 设置为 YES 意味着该应用不再支持多任务处理。根据您的用例,这可能不是一个好主意。见developer.apple.com/library/content/documentation/WindowsViews/… 这是一个残酷的解决方案,但这是我找到的唯一可行的解​​决方案。谢谢! 我必须取消选择“支持多个窗口”才能使其工作。

以上是关于在 iPad 中未调用supportedInterfaceOrientations的主要内容,如果未能解决你的问题,请参考以下文章

Boost.Thread 线程在发布版本中未在 iPhone/iPad 上启动

运行 iOS 8.2 的 ipad 中未显示相机

iPad 问题中未显示 UIImagePickerController

物理设备(iPad)在 vs 代码中未检测到颤动,但在 Xcode 中检测到并正常调试

Iphone mapview 中未显示多个注释

iOS 6 shouldAutorotate: 没有被调用