在 iOS 7 中呈现 UIImagePickerController 的问题

2023-12-21

我的应用程序仅在横向模式下运行!所以我知道UIImagePickerController仅以纵向模式呈现,因此在 iOS 6 中,我创建了一个子类UIImagePickerController这迫使UIImagePickerController以纵向模式打开:

@interface NonRotatingUIImagePickerController : UIImagePickerController

@end

@implementation NonRotatingUIImagePickerController

- (BOOL)shouldAutorotate {

    return NO;
}

@end

//presenting picker controller :

UIImagePickerController *ipc = [[NonRotatingUIImagePickerController alloc]init];
ipc.delegate = self;
[self presentViewController:ipc animated:YES completion:nil];

这在 iOS 6 中工作得很好,但现在在 iOS 7 中我的应用程序确实崩溃了,因为:

2013-10-31 14:56:01.028 Medad[1731:60b] *** Terminating app due to
uncaught exception 'UIApplicationInvalidInterfaceOrientation', reason:
'Supported orientations has no common orientation with the
application, and shouldAutorotate is returning YES'

This problem could be solved if I check Portrait in deployment info : enter image description here

问题是,如果我选中此选项,我的应用程序也可以纵向运行,但我不想要它!

我该如何解决这个问题?


我已经对其进行了测试,发现您不应该通过目标窗口中的复选框来处理方向,如上图所示,因为它是您的整个应用程序方向,因此请选中所有框以获得支持的所有方向。如果您想要不同方向的某些视图和不同方向的某些视图,那么您将必须通过编码来处理它ViewController返回类YES OR NO用于定向。

这是我的Sample https://dl.dropboxusercontent.com/u/74641080/ImagePickerSample.zip。我做的。请检查。

下面的方法将处理方向ViewController

-(BOOL)shouldAutorotate
{
    return YES;
}

-(NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight;
}

// Old Method
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
    if (UIInterfaceOrientationIsPortrait(toInterfaceOrientation)) {
     return NO;
    }
    else {
        return YES;
    }
}

所以,解决方案是:创建两个自定义类,其中一个用于UIImagePickerController另一个是为了ViewController(对于所有 ViewController)并将它们设置为特定方向并将这些类用作您的超类UIImagePickerController和所有ViewControllers分别。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 iOS 7 中呈现 UIImagePickerController 的问题 的相关文章

  • 让约束在尺寸类别中发挥作用

    所以 我正在 Xcode 6 beta 中尝试尺寸类 我对图像设置了一些限制 使其根据 iPhone 纵向和横向对应的尺寸类别处于不同的位置 这些限制在下图中可见 正如您所看到的 当我处于紧凑 紧凑状态时 一些约束被 安装 而其他约束则没有
  • 当 iPhone 设备方向朝上/朝下时,我可以判断它是横向还是纵向吗?

    我得到这个代码 如果设备处于左 右横向或上下颠倒状态 它会旋转并显示另一个视图控制器 但如果它的方向朝上或朝下 那么我如何判断它是横向模式还是纵向模式 因为我只想在它面朝上或朝下以及横向模式下旋转 void viewDidAppear BO
  • 我可以使用 NSDateFormatter 将此日期字符串转换为 NSDate 吗?

    我有这个字符串 2010 08 24T16 00 00 05 00 我想从中提取时间部分 即 16 00 并将其转换为 12 小时等效值 即下午 04 00 我正在尝试使用 NSDateFormatter 来完成此任务 但它不起作用 NSD
  • Swift NotificationCenter 删除观察者最快的方法

    我正在添加一些观察员viewController applicationWillResignActive applicationDidEnterBackground 以及许多其他人 我想删除self作为一行中所有已注册通知的观察者 我的问题
  • 从 NSString 的第一行删除换行符

    我怎样才能删除第一个 nNSString 中的字符 编辑 只是为了澄清一下 我想做的是 如果字符串的第一行包含 n 字符 请将其删除 否则不执行任何操作 即 如果字符串是这样的 nhello this is the first line n
  • UIAlertView 中的 MPVolumeView?

    是否可以将 MPVolumeView 放入 UIAlertView 中 我已经尝试过put它在里面 但不显示 这可能是sizeToFit or initWithFrame 部分 有没有办法测试是否MPVolumeView实际上正在被创建吗
  • Xcode 6.3 Parse SDK 1.7.1 PFTableViewCell 错误“具有不兼容的类型”

    My code override func tableView tableView UITableView cellForRowAtIndexPath indexPath NSIndexPath object PFObject gt PFT
  • 无法下载应用程序 - 此时无法下载“APP”

    我的应用程序有 PLUS 版本和常规版本 我使用不同的目标对它们进行存档 我将 ipa 上传到 TestFlight 也上传到我的曲棍球服务器 PLUS 版本总是下载得很好 但普通版本总是给我 无法下载应用程序 错误 我根本没有更改两个版本
  • iOS 复合谓词

    我正在编写一个具有照片数据库的应用程序 每张照片都有多个与之关联的标签 并且该应用程序有一个带有大量切换的搜索页面 允许用户仅根据他们感兴趣的标签搜索照片 每个标签都存储了integerID 是因为它们对应于外部数据库的 ID 所以我尝试简
  • 在 iPhone 和 Cocos2d 中从类类型(+)方法访问对象?

    我有一个类方法 在其中创建并返回类对象 但我想访问同一类中该对象的某些属性 作为一个类方法 我无法在 h 文件中声明该变量 然后在其他方法中访问它 以下是代码 我如何在下面的实例方法中访问 backsprite 或 hudlayer 对象的
  • 标签中的文字大小

    如何限制标签中的字符数 您可以通过设置自动截断带有省略号的文本frame of the UILabel NSInteger newSize 10 label frame CGRectMake label frame origin x lab
  • 如何将 #ifdef DEBUG 添加到 Xcode?

    我的项目中有一些代码永远不应该在发布版本中使用 但在测试时很有用 我想做这样的事情 ifdef DEBUG Run my debugging only code endif 在 Xcode 4 中哪里添加 DEBUG 设置 我尝试将其放入
  • 处理核心数据中的重复条目

    我有一个允许用户保存收藏夹的应用程序 我正在使用 Core Data 将收藏夹存储为托管对象 我已经编写了一些代码来防止存储重复项的可能性 但我想知道是否有更好的方法来做到这一点 每个收藏夹对象都有一个唯一的 ID 字段 在下面的代码中 我
  • 连接到 Apple Music

    所以我尝试使用 React Native 应用程序从 iOS 设备连接到 Apple Music 有一个 API 可以执行相同的操作 但我需要从 storekit 框架调用一个函数 提出个性化请求 苹果音乐API https develop
  • Xcode 本地化设置中没有加号或减号按钮

    我需要在两天内翻译 iOS 应用程序 但我的 XCode 版本 4 4 和 4 5 Developer Preview 都没有给我添加其他语言的选项 我只能选择单击 Make localized 但我只能选择英语 选择它后 Xcode 中的
  • insertObject:atIndex 的复杂性:

    复杂度是多少 NSArray insertObject atIndex N 或常数 另外 如何找出各种 Objective C 语句的复杂度 有一个在这里讨论 http www cocoadev com index pl NSMutable
  • Apple Mach-O 链接器错误 armv7s 和 libGoogleAdMobAds.a

    我刚刚升级了我的应用程序以在新的 iPhone5 模拟器上运行 但是当我尝试为我的 iPhone 4S 设备构建它时 我收到此 Apple Mach O Liner 错误 ld 文件是通用的 3片 但不包含 n armv7s 切片 User
  • iOS 11 getUserMedia 不起作用?

    苹果公司发表声明称getUserMedia将在 iOS 11 上完全正常运行 安装 iOS 11 Beta 版本 5 后 我确实收到一条消息 表明我的网站请求访问我的相机和麦克风 但似乎是这样的 video src window URL c
  • 将 Facebook 图片 URL 上传到 Firebase 存储

    我正在尝试将用户的 Facebook 个人资料图片上传到 Firebase 存储 let dictionary result as NSDictionary let data dictionary objectForKey data let
  • Swift 3 和 Xcode8 - init 的使用不明确

    在我安装 Xcode 8 并将项目转换为 Swift 3 之前 以下行没问题 现在转换后看起来像这样 let valueData Data Data bytes UnsafePointer

随机推荐

  • 如何将 R 公式中的一项替换为两项?

    我有一些类似的东西 y x z 我想把它改造成 y x part1 x part2 z 更一般地说 我希望有一个函数 它接受一个公式并返回该公式 并将所有与 x 匹配的术语替换为 x part1 和 x part2 这是我当前的解决方案 但
  • 根据给定的字符串输入确定类型

    有什么方法可以检测给定字符串输入的类型吗 Eg string input 07 12 1999 string DetectType s Type t DetectType input which would return me the ma
  • 在 Windows 上成功使用 shutdown.rmtree 后,os.mkdir 可能会失败并出现 PermissionError

    考虑以下用于清理目录的 python 函数 def cleanDir path shutil rmtree path os mkdir path 在 Windows 上 实际在 Windows7 和 Windows10 上使用 python
  • 设置要在并行性中使用的核心

    我感觉这个问题的答案是否定的 但是使用 Net 4 0 的并行性 您可以设置要运行的内核数量 即如果您运行四核 您可以将应用程序设置为仅使用其中的 2 个 Thanks 是的 它是 Parallel For 的内置功能 使用接受 Paral
  • 如何防止 .NET 实体中的私有属性通过服务公开为公共属性?

    我正在创建一个 WCF 服务 用于传输通过实体框架创建的实体对象 我有一个映射到用户数据库表的用户实体 我不想向客户端公开某些用户字段 密码 创建日期等 但是因为它们在数据库中不可为空 所以 Visual Studio 需要映射 将这些属性
  • 在react-router中用连字符匹配路由

    我有这样的网址 http 0 0 0 0 country bosnia and herzegovina 644 这是我的路线声明
  • docker 使用 --interactive 和 --tty 标志运行

    Edit 有人标记重复的这个问题 https stackoverflow com questions 48368411 what is docker run it flag 但它根本没有解释底层机制 但相比之下 这个堆栈溢出 https s
  • OS X:检测系统范围的 keyDown 事件?

    我正在为 Mac OS X 开发一个打字辅导应用程序 即使该应用程序未处于焦点状态 也需要将击键转发给它 有没有办法让系统将击键转发到应用程序 可能通过 NSDistributedNotificationCenter 我用谷歌搜索了自己愚蠢
  • 将 JSON 导入 Eclipse 项目

    我是一名有抱负的 Java 程序员 希望在项目中使用 JSON 我正在遵循一个编程教程 来自一本书 它要求我使用以下行将 JSON 导入到我的项目中 import com google appengine repackaged org js
  • 苹果推送消息

    我正在将推送提供商服务器与谷歌代码中的代码 php apns 集成 除了每条消息的字节数之外 一切似乎都很好 每个有效负载的字节数最多应为 256 个字符 如果发送一些汉字或者UTF 8字符 JSON编码后 每个字符占用6个字节 我对吗 所
  • 在网站上使用内联/base64 图像比仅链接到硬文件要快多少?

    使用 base64 line 来显示图像比简单地链接到服务器上的硬文件快多少 url data image png base64 我还没有找到任何类型的性能指标 我有几个顾虑 您不再获得缓存的好处 Base64 的大小不是比 PNG JPE
  • 在 Sass 中使用 CSS 属性变量

    我正在编写一个 mixin 其中包含一些数学计算元素的百分比宽度 但由于它非常有用 我也想对其他属性使用相同的函数 例如边距和填充 有没有办法将属性名称作为参数传递给 mixin mixin w fluid property name w
  • “EntityManager 没有持久性提供程序”错误

    我是 JPA 的新手 我尝试从书中做一个简单的例子 但无论我做什么 我都会收到以下错误 Exception in thread main javax persistence PersistenceException No Persisten
  • Java的排序算法是什么[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 OpenJDK 内部如何对数据类型进行排序以及为什么 如果能说一下具体的算法就太好了 从版本 7 开始 Oracle 的 Java 实
  • 如何更改conda base的路径

    I am a Linux集群用户 当我安装了一个版本miniconda 集群有自己的版本anaconda 当我做 conda info envs 输出是 conda environments home user miniconda3 env
  • 如何使用类型级函数动态创建静态类型?

    在 TypeScript 中 有类型级 功能允许根据给定创建新类型literal 类型 规格 see 映射类型 https www staging typescript org docs handbook advanced types ht
  • 如何计算 std::weak_ptr 的哈希值?

    所以我有使用的代码std weak ptr并将它们维护在std set 而且效果很好 并且在过去的五七年里一直有效 最近我想我应该在一个std unordered set 嗯 实际上在一个f14 F14ValueSet 为此 我需要它的哈希
  • 打破批处理文件中的嵌套 for 循环

    两次遇到这个问题后 我想我会将其发布在这里 看看是否有人知道如何解决它 我似乎无法使用打破嵌套循环goto 因为看起来当它跳出内部循环时 括号就会不匹配 因为它从未到达内部结束循环 我已将其范围缩小为一个非常简单的示例 for a in 1
  • 将日期时间转换为时间戳 PHP

    我的 GPS 设备正在与我的 php Web 服务通信 它发送 date 311011 和 time 060904 格式 time str split time 2 date str split date 2 time implode ti
  • 在 iOS 7 中呈现 UIImagePickerController 的问题

    我的应用程序仅在横向模式下运行 所以我知道UIImagePickerController仅以纵向模式呈现 因此在 iOS 6 中 我创建了一个子类UIImagePickerController这迫使UIImagePickerControll