gpt4 book ai didi

orientation - 在 iOS 6.0 下呈现 UIImagePickerController 时崩溃

转载 作者:行者123 更新时间:2023-12-02 23:41:19 25 4
gpt4 key购买 nike

我的应用仅通过 supportedInterfaceOrientation 属性支持横向方向。

使用 iOS 6 之前的 iOS,我的应用程序可以通过 presentViewController:animated:completion: 成功加载 UIImagePickerController 实例,即使 UIImagePickerController code> 本身只支持纵向。

图像选择器只是向用户展示其侧面。用户旋转手机,选择图像,然后旋转回横向。

在 iOS 6.0 下,使用 UIImagePickerController 实例调用 presentViewController:animated:completion: 会使应用程序崩溃。我可以通过向我的 supportedInterfaceOrientation 属性添加纵向选项来防止崩溃。

但是,纵向操作对于我的应用程序来说确实没有意义。我原以为我可以使用shouldAutorotateToInterfaceOrientation来允许应用程序“支持纵向”,但只允许在这一个 View 中旋转到纵向。但现在该方法已被弃用,并且我无法对 shouldAutorotate 使用相同的技术。

有人知道如何在 iOS 6.0 下解决这个问题吗?

最佳答案

iOS 6.1 - 已修复

从 iOS 6.1 开始,这种情况不再发生,为了避免在 iOS 6.0.x 下崩溃,遵循我的提示非常重要,以下内容仍然适用。

<小时/>

iOS 6.0.x 解决方法

这实际上是 iOS 6.0 中的一个错误,应该在未来的 iOS 版本中修复。

Apple 的一位工程师在这里解释了这个错误和解决方法:https://devforums.apple.com/message/731764

发生这种情况是因为应用程序仅需要横向方向,但某些 Cocoa Touch View Controller 要求严格纵向方向,这是错误 - 并不是说​​它们应该要求比纵向更多的内容,而是它们对应用程序要求的解释。

示例如下:

iPad app supporting landscape only displays a UIImagePickerController via a UIPopoverController. The UIImagePickerController requires Portrait orientation, but the app is forcing landscape only. Error and... crash

其他被报告有问题的框架包括游戏中心登录 View Controller 。

解决方法非常简单,但并不理想...您保留在 info.plist/project 信息 Pane 中声明的正确方向,但在应用程序委托(delegate)类中您声明允许所有方向。

现在,添加到窗口的每个 View Controller 都必须指定自己只能是横向。请检查链接以了解更多详细信息。

<小时/>

我无法强调您不应该对 UIImagePickerController 进行子类化,因为公认的解决方案坚持要求您这样做。

enter image description here

这里重要的是“此类旨在按原样使用,不支持子类化。”

<小时/>

在我的例子中,我将其添加到我的应用程序的委托(delegate)中(我有一个仅横向的应用程序),这告诉图像选择器它可以显示,因为支持纵向:

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window{
return UIInterfaceOrientationMaskAll;
}

然后在我的 View Controller (恰好是 UINavigationController)中,我包含了一个具有以下内容的类别:

- (NSUInteger)supportedInterfaceOrientations{
return UIInterfaceOrientationMaskLandscape;
}

现在我的应用程序不旋转,图像选择器询问代理是否可以显示为肖像,并被告知可以。所以一切都进展顺利。

关于orientation - 在 iOS 6.0 下呈现 UIImagePickerController 时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12522491/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com