【问题标题】:XCode iO6: UIWebView Returns Black Screen After Returning from Choosing a PhotoXCode iO6:UIWebView从选择照片返回后返回黑屏
【发布时间】:2013-01-17 23:43:45
【问题描述】:

以下是导致我的应用返回黑屏的事件序列:

1.) 我通过应用程序的 UIWebView 在我的网站上选择一个按钮,该按钮允许我更改我的个人资料图片。

2.) 应用从屏幕底部拉出三个标准选项:“拍照或录像”、“选择现有”、“取消”

3.) 如果我选择前两个选项中的任何一个,然后选择或拍照,我的应用程序将返回并显示黑屏。个人资料图片未更改。我还注意到控制台窗口中出现以下消息:“对 UIFileUploadFallbackRootViewController 的开始/结束外观转换的不平衡调用:0x1c590e60。”

奇怪的是,这个移动网站“加载照片”功能在从我的应用程序的 UIWebView 访问时可以正常工作。我在升级到 iOS6 后第一次注意到这个问题。关于可能发生的变化或我现在需要从我的网站或应用程序中适应的任何想法?

提前感谢您提供的任何帮助!

2/17/13 更新:

移动网站上用于加载照片的 HTML 代码:

<form class="appnitro" enctype="multipart/form-data" method="post" action="mysite.php">
<input id="file1" name="file1" class="button_text" type="file" size="50px"/> <br />
<input id="submitpic" class="button_text" type="submit" name="submit" value="Save Picture" />
</form>

注意:使用 jquery mobile。此外,如果使用 Safari 访问移动网站,上传照片功能也可以正常工作。只有在应用内尝试使用 UIWebView 上传新照片时才会显示黑屏。

【问题讨论】:

  • 如果您需要这方面的建议,您需要发布一些代码
  • 感谢@JSA986,我添加了使用的移动代码。这有帮助吗?

标签: iphone ios xcode uiwebview ios6


【解决方案1】:

似乎是因为没有设置rootViewController。

您可能会收到警告:“应用程序窗口应在应用程序启动结束时具有根视图控制器”

确保你有这样的东西:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 

// Override point for customization after app launch 

_window.rootViewController = myViewController;

...
}

【讨论】:

  • 谢谢@Benoit 的回答。但是,我在 appDelegate.m 中使用以下代码行设置了 rootViewController: 'self.navController = [[UINavigationController alloc] initWithRootViewController:self.viewController]' 而且,它看起来不像我的 appDelegate 的 'didFinishLaunchingWithOptions'从我的手机中选择一张照片并且屏幕变黑后被调用。唯一的线索是,我在选择“选择文件”后收到以下警告:对 的开始/结束外观转换的不平衡调用。
  • @JRoss didFinishLaunchingWithOptions: 不应该在选择照片后调用。它在启动时调用并将 window.rootController 设置为您的主视图控制器可以防止问题发生。它为我解决了这个问题,我也有同样的症状。
  • 感谢@Benoit,这似乎奏效了。但是,我需要在第一次打开时创建一个注册页面,这导致我等待将我的主 webView 页面推送到 navController 的堆栈中。现在,当我尝试设置 rootViewController 时,出现以下错误:“*** 由于未捕获的异常 'UIViewControllerHierarchyInconsistency' 而终止应用程序,原因:'添加根视图控制器 作为视图控制器的子级:" 我猜我在添加 navController 子视图后不能这样做。你会如何处理这个错误?
  • @JRoss 听起来您将错误的 VC 分配为 window.rootViewController - 也许您需要分配 navController。另一种方法是使用 Apple 的图形工具(界面生成器、情节提要),因为它们会自动处理这些问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-14
  • 2021-05-18
  • 1970-01-01
  • 2011-03-06
  • 2021-07-31
相关资源
最近更新 更多