iOS 8 SDK:模态 UIWebView 和相机/图像选择器

2023-11-24

我发现,在针对 iOS 8 进行编译(并在 iOS 8 中运行)时,UIWebView无法显示相机/图像选择器,如果UIWebView位于以模态方式呈现的视图控制器中。它在直接“悬挂”在窗口上的视图控制器中工作没有问题rootViewController或从它推送的视图控制器。

测试应用程序可以在以下位置找到:https://dl.dropboxusercontent.com/u/6214425/TestModalWebCamera.zip但我会在下面描述它。

我的测试应用程序(使用故事板构建,但实际应用程序不使用它们)有两个视图控制器(最初命名为ViewController and ViewController2). ViewController包含在一个UINavigationController这是根视图控制器。ViewController包含一个UIWebView(工作开启),一个“显示”(“推动”)的按钮ViewController2, and a UIBarButtonItem它模态地呈现ViewController2. ViewController2还有另一个UIWebView它在“推动”时有效,但在“呈现”时无效。

Both ViewController and ViewController2装载有:

- (void)viewDidLoad {
  [super viewDidLoad];

  [self.webView loadHTMLString:@"<input type=\"file\" accept=\"image/*;capture=camera\">" baseURL:nil];
}

当尝试使用模态时UIWebViewXcode 在控制台中打印以下内容并关闭应用程序模式:

Warning: Attempt to present <UIImagePickerController: 0x150ab800> on <ViewController2: 0x14623580> whose view is not in the window hierarchy!

我目前的理论是,变化UIActionSheet to UIAlertController可能会造成这种情况,但很难证明。我会用苹果打开一个雷达,以防万一。

有人发现同样的情况和一些解决方法吗?


我发现在iOS 8.0.2中iPad似乎没有这个bug,但iPhone仍然有。

但是,在包含 uiwebview 的视图控制器中重写以下内容

-(void)dismissViewControllerAnimated:(BOOL)flag completion:(void (^)(void))completion

检查是否有presentedViewController 似乎可以工作。

但需要检查副作用

#import "UiWebViewVC.h"

@interface UiWebViewVC ()

@property (weak, nonatomic) IBOutlet UIWebView *uiwebview;

@end

@implementation UiWebViewVC

- (void)viewDidLoad
{
    [super viewDidLoad];

    NSURL *url = [NSURL URLWithString:@"http://html5demos.com/file-api-simple"];

    NSURLRequest *request = [NSURLRequest requestWithURL:url];

    self.uiwebview.scalesPageToFit = YES;

    [self.uiwebview loadRequest:request];
}


-(void)dismissViewControllerAnimated:(BOOL)flag completion:(void (^)(void))completion
{
    if ( self.presentedViewController)
    {
        [super dismissViewControllerAnimated:flag completion:completion];
    }
}


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

iOS 8 SDK:模态 UIWebView 和相机/图像选择器 的相关文章

  • 在 Pages 文稿中打开文本—Swift

    在我的 Swift 2 应用程序中 用户通过文本字段创建一串文本 然后将其共享给另一个应用程序 现在 我只能将文本共享为 txt 文件 这不提供选项Open In Pages当我打开系统共享对话框时 如何才能让用户可以选择将输入的文本作为
  • Swift try inside Objective-C 块

    我需要创建一个函数foo它接受一个抛出闭包作为参数 我可以使用 Swift 或 ObjC 来实现它 但我需要能够从两者中调用它 像这样 Swift func bar throws func foo block throws gt void
  • 如何本地化 iOS 故事板

    我有一个包含一些视图的 iPhone 故事板 例如 导航项标题名为News 应翻译为其他语言 当我向故事板添加新的本地化版本时 它会为新语言创建当前故事板的副本 在这里我可以更改导航项的标题 但对我来说它似乎不太有用 如果我的故事板包含 1
  • iOS FacebookSDK + 解析 SDK + GoogleMaps SDK

    我搜索了很多 然后我意识到 ObjC标记那个GoogleMapSDK需要 但不能很好地配合ParseSDK and FacebookSDK 所以我阅读了所有的 stackoverflow 答案并尝试解决我的问题 问题还没有解决 我执行的步骤
  • 如何从标签栏控制器上方显示 UIActionSheet 视图?

    我需要在选项卡栏控制器上方显示操作表 我的意思是 即使操作表视图处于可见模式 我也能够看到选项卡栏控制器 因此 请建议如何从选项卡栏控制器上方查看 是否可以 其次 如何更改操作表的背景颜色和取消按钮背景颜色 请帮我 谢谢你 马丹 莫汉 要从
  • 为什么 iPhone 应用程序的 main() 函数没有机会完成?

    考虑以下main 大多数 iPhone 应用程序都采用以下方法 int main int argc char argv NSAutoreleasePool pool NSAutoreleasePool alloc init int retV
  • Swift:Tableview 在导航栏下方滚动但在状态栏上方滚动?

    我使用以下技巧隐藏了导航栏的阴影 self navigationController navigationBar setBackgroundImage UIImage for default self navigationControlle
  • 使用 JSONKit 解析 JSON 文件

    我正在构建一个音叉应用程序 货叉应允许最多 12 个预设节距 此外 我希望允许用户选择一个主题 每个主题都会加载一组预设 不必使用所有预设 我的配置文件看起来像这样 theme A3 comment An octave below conc
  • 单击按钮时退出应用程序 - iOS [重复]

    这个问题在这里已经有答案了 可能的重复 iOS 4 0 中退出应用程序 https stackoverflow com questions 3097244 exit application in ios 4 0 我有一个 AlertView
  • 按升序对 NSDictionary 进行排序

    我正在尝试排序NSDictionary按升序排列 我正在使用这段代码 NSDictionary valDict self mGetDataDict key rowKey for NSString valueKey in valDict al
  • 为什么 Apple 建议以编程方式创建模态导航控制器?

    以模态方式呈现导航控制器时 以编程方式创建和配置导航控制器对象通常更简单 虽然您也可以使用 Interface Builder 来执行此操作 但通常不建议这样做 事实上 因为我的导航控制器很简单 我宁愿在IB中自定义视图 虽然我不知道确切的
  • iOS - 在相机上放置自定义叠加层(垂直对齐)。顶部黑条的大小

    我正在寻找以下问题的编程解决方案 我想在相机 iOS 上绘制自定义叠加层 我希望它位于相机输出视图的垂直中央 我已经完成了相对于屏幕而不是相机图片居中绘制自定义视图 为此 我需要获得顶部黑条的大小 我怎么才能得到它 顶部和底部栏的大小不相等
  • 广告标识符和标识符ForVendor返回“00000000-0000-0000-0000-000000000000”

    我已经实现了这个方法来获得advertisingIdentifier and identifierForVendor NSString advertisingIdentifier if NSClassFromString ASIdentif
  • “无法取消归档名为 UITableViewController 的元素”

    我一直在按照 构建你的第二个 iOS 应用程序 教程一步步进行 在教程承诺所有错误都会消失之后 我遇到了这个错误 但直到其他错误都出现后 该错误才出现 全部更正 我尝试编译它 错误 The document MainStoryboard i
  • 增加 iPhone 的推送通知徽章

    是否可以在收到通知时增加徽章值 或者我应该将计数作为有效负载发送吗 如果我每次都将徽章值发送为 1 那么如果应用程序未打开 我如何增加应用程序图标中的徽章值 我已经使用了这段代码 但不起作用 void application UIAppli
  • 如何将nsmutable数组添加到sqlite数据库表中

    如何将nsmutablearray添加到sqlite数据库表中 有人可以帮我编码吗 您可以使用 for int i 0 i lt mutArray count i NSString string mutArray objectAtIndex
  • Swift - 保存在 TableView 中选择的复选标记

    我对 Swift 相当陌生 并且在 TableView 多重选择方面遇到问题 我有多个选择 可以用复选标记进行检查 类似于待办事项列表 当我检查项目时 我希望能够返回 ListView 并保存我的选择 我假设将其保持在已保存状态的代码将位于
  • 获取所有ios应用程序的全局列表[重复]

    这个问题在这里已经有答案了 我想对苹果应用商店进行一些全球统计 一个瓶颈是至少获取所有当前活动应用程序的 ID 这 9 位数字 有谁知道如何获取 iOS 应用商店中当前活动应用程序的所有 id 的完整列表 更好的是特定类别的所有 ID 例如
  • 隐藏 UITableview 单元格

    我正在尝试从 UITableView 中隐藏单元格 就像删除操作一样 但我只想隐藏它以便稍后在相同位置显示它 我知道 UITableViewCell 有一个名为 隐藏 的属性 但是当我使用此属性隐藏单元格时 它会隐藏但没有动画 并且会留下空
  • 如何安全地重命名 iOS 分发配置文件?

    我几个小时前刚刚提交了我的第一个应用程序 现在处于 等待审核 状态 但我犯了一个错误 我已经命名了我的分配配置文件My Company Distribution Profile 我应该做的事情被命名为我的发行版配置文件My GAME Dis

随机推荐

  • Symfony2 路由全局 {_locale} 要求

    我在routing yml 中指定了每个路由中的参数 locale 要求 我认为这一定可以简化这种情况 路由 yml ProjectBaseBundle index pattern locale defaults controller Pr
  • opencv 中体积图像的 3D 图像处理

    我期待 Opencv 中 3D 图像处理的教程 我有 O Reilly 出版的书 这是一本关于 Opencv 中的 2D 图像处理的好书 谁能给我介绍一些 3D 图像处理的资源吗 本问题中的 3D 图像代表体数据 通常指 CT MRI 数据
  • node.js 只输出三个点[重复]

    这个问题在这里已经有答案了 我在 Windows 计算机上安装了 node js 并打开了命令提示符 当我尝试 Hello World 示例时 我得到的唯一输出是三个点 node hello js 我做错了什么吗 node hello js
  • C# 反射:使用字符串类名实例化对象

    我的情况如下 我正在使用 Visual C 2010 Express 开发 Windows 窗体应用程序 当用户登录时 动态地构建一个菜单条 其中包含从数据库表加载的选项 在该表中 我保存 ID 选项名称和表单名称 所以 假设在我的项目中我
  • JSF 中“记住我”的 Cookie

    我有一个登录页面 我想添加 记住我 功能 这样 如果用户注销并再次打开页面 则会加载他的用户名和密码 为此 当用户登录 并选中 记住我 时 我会保存以下 cookie FacesContext facesContext FacesConte
  • 如何打印调用的函数?

    在调试 Python 脚本时 我真的很想知道整个程序的整个调用堆栈 理想的情况是 如果 python 有一个命令行标志 它会导致 Python 在调用时打印所有函数名称 我检查过man Python2 7 但没有找到此类内容 由于此脚本中的
  • ASP.NET 中有没有本地方法可以发出“成功消息”?

    假设您有一个类似 ASP NET ASP DetailsView 的东西来显示和编辑数据库中的单个记录 记录错误情况很简单 您添加验证和验证摘要 当您的更新表单验证失败时 它自然会发出噪音 它显示验证消息和 或验证摘要 不需要任何后面的代码
  • 如何在 Windows 上使用 youtube-dl 提取音频

    我想从 Windows 上使用 youtube dl 下载的视频中提取音频 我让 youtube dl 正常工作 但无法提取音频 此问题是由于未安装正确的音频代码造成的 当我尝试提取音频时 它告诉我以下内容 WARNING unable t
  • openXML电子表格文档返回用于MVC文件下载的字节数组

    我试图以 byte 的形式返回一个 openXML 电子表格文档 然后我可以使用它来允许我的 MVC 将该文件发送给用户 这是我的电子表格文档方法返回字节数组 using MemoryStream mem new MemoryStream
  • C++ 中用 :: 限定的命名空间

    如果 C 中的命名空间被限定 这意味着什么 例如 testing Test 是范围解析运算符 它始终意味着 在全局命名空间中搜索右侧的符号 例如 namespace testing int a 1 namespace foo namespa
  • 如何使用 Python 搜索和替换 XML 文件中的文本?

    如何搜索整个xml文件中的特定文本模式 然后用 Python 3 5 中的新文本模式替换该文本的每次出现 其他所有内容 格式 属性 注释等 都需要保持原始 xml 文件中的原样 我在 Windows win32 上运行 Python 3 5
  • 在 package.json 中设置 process.env var

    我正在尝试使用 package json 设置和检索节点应用程序 process env 变量 因此通过研究问题 我找到了一个通过 配置 部分设置 检索 process env 的示例 因此我添加了一个新配置部分如下图 config var
  • 获取 Jenkinsfile 失败的错误原因

    我有以下内容post故障部分 post failure mail subject u2639 env JOB NAME env BUILD NUMBER has failed body Build env BUILD URL is fail
  • 如何将“过滤器”应用到 AVCaptureVideoPreviewLayer

    我的应用程序当前正在使用 AVFoundation 从 iPhone 后置摄像头获取原始摄像头数据 并将其实时显示在 AVCaptureVideoPreviewLayer 上 我的目标是有条件地将简单的图像滤镜应用到预览图层 图像未保存 因
  • 如何使用 Android Studio 在 firebase 中检查“用户电子邮件已存在”

    我正在尝试更改我的代码 但是 它失败了 我的输出还是一样 也就是说 如果用户输入的电子邮件已经存在或不存在 验证 此电子邮件已被注册 还是出来了 为什么 有人可以我的编码有什么问题吗 这是我的方法 public boolean isChec
  • Next.js cookie 无法通过路由器中间件

    我正在尝试使用新的 Next Js 12 中间件功能创建一些路由保护 我的身份验证基于 cookie 上设置的 JWT 令牌 我之前已经使用 Next Js 上的 API 后端实现了这一点 没有出现任何问题 并且当点击 API 路由时 co
  • 如何在 CodeIgniter 的 url 中隐藏控制器名称?

    所以问题是我正在使用 htaccess 来隐藏 index php 但我仍然在 url 中获取控制器名称 如下所示 http example com name controller about我的问题是 是否可以隐藏控制器的名称 以便只显示
  • 错误:接口转换interface {}是[]interface {},而不是map[string]interface {}

    我正在构建一个项目 该项目从用户那里获取一个术语 然后执行谷歌搜索并返回 json 格式的标题列表 我正在使用 serpwow API 执行谷歌搜索并尝试解析响应 但是我收到错误消息 panic interface conversion i
  • 如何导出 DLL 中的类函数,但不是整个类

    我开发了一个 Win32 DLL 提供了下面的详细信息 并希望为函数 Connnect 和 LogOut 创建一个 CLI C 包装器 我知道可以从 DLL 导出整个类和函数 class CClientLib public CClientL
  • iOS 8 SDK:模态 UIWebView 和相机/图像选择器

    我发现 在针对 iOS 8 进行编译 并在 iOS 8 中运行 时 UIWebView无法显示相机 图像选择器 如果UIWebView位于以模态方式呈现的视图控制器中 它在直接 悬挂 在窗口上的视图控制器中工作没有问题rootViewCon