使用 Photolibrary 将 shouldAutorotate 设置为 false

Posted

技术标签:

【中文标题】使用 Photolibrary 将 shouldAutorotate 设置为 false【英文标题】:Set shouldAutorotate to false with Photolibrary 【发布时间】:2014-08-01 23:36:55 【问题描述】:

如果我添加一个可以从iPad 访问我的照片库的弹出框,系统总是会崩溃并显示以下消息:

由于未捕获的异常“UIApplicationInvalidInterfaceOrientation”而终止应用程序,原因:“支持的方向与应用程序没有共同的方向,并且 [PUUIAlbumListViewController shouldAutorotate] 返回 YES”

但我已经在我的 Projekt 信息中进行了设置,只是为了支持横向模式。

所以我添加了以下功能

override func shouldAutorotate() -> Bool 

    return false

可是我不知道怎么用?如果我也在我的应用程序上启用UIInterfaceOrientationPortrait,它工作正常。但我不想支持UIInterfaceOrientationPortrait

我会这样称呼我的弹出框:

var popover: UIPopoverController = UIPopoverController(contentViewController: ImagePickerController)

popover.presentPopoverFromBarButtonItem(addImageButton, 
                                        permittedArrowDirections: UIPopoverArrowDirection.Any, 
                                        animated: true)

任何帮助将不胜感激

【问题讨论】:

【参考方案1】:

你别无选择。事实上你已经解决了这个问题。正如您已经说过的,解决方案是在您的应用程序中启用纵向。您不必在任何其他视图控制器中使用它,但您必须将它包含在应用程序允许的方向中,因为您尝试显示的这个视图控制器需要它。如果视图控制器要求和应用允许的交集为空,应用将崩溃(如您所见)。

【讨论】:

所以你的意思是我只是启用它,但我怎样才能为我的应用程序强制横向模式? 这对于 ios8/Swift 仍然是最新的吗? ***.com/questions/12520030/… "但是我如何才能为我的应用程序强制使用横向模式" 通过让属于您的每个视图控制器只允许横向,并确保横向在 Info.plist 列表中排在首位。但是 this 视图控制器,您遇到问题的那个,将纵向显示。 感谢您的帮助! 我的书解释了 iOS 应用定向机制是如何工作的:apeth.com/iOSBook/ch19.html#_rotation【参考方案2】:

在稍高一点的层面上,问题在于您的应用仅支持横向,而 UIImagePickerController 要求您的应用支持纵向(但没有任何视图控制器,这没有任何意义,但无论如何...... )

所以另一种处理这个问题的方法是寻找一个替代UIImagePickerController 的替代方法。这是一个运作良好的。虽然代码几年没有更新,但它与 ARC 兼容。

https://github.com/B-Sides/ELCImagePickerController

它非常棒,可以帮助您避免很多疯狂,特别是如果您不想(或不能)在您的应用中支持纵向模式。

【讨论】:

以上是关于使用 Photolibrary 将 shouldAutorotate 设置为 false的主要内容,如果未能解决你的问题,请参考以下文章

如何将 NSData 文件作为视频写入 Photolibrary/SavedPhotosAlbum?

使用 Swift 从 iOS 中的 PhotoLibrary 中选择视频

将 UIView 保存到 iPad PhotoLibrary

ruby Rails Rspec模型使用rspec-rails,shoulda-matcher,shoulda-callbacks和factory_girl_rails测试骨架和备忘单。差不多

ruby Rails Rspec模型使用rspec-rails,shoulda-matcher,shoulda-callbacks和factory_girl_rails测试骨架和备忘单。差不多

ruby Rails Rspec模型使用rspec-rails,shoulda-matcher,shoulda-callbacks和factory_girl_rails测试骨架和备忘单。差不多