【问题标题】:UIImagePickerController appears but camera doesn't start on iOS 5UIImagePickerController 出现,但相机没有在 iOS 5 上启动
【发布时间】:2012-01-07 03:47:09
【问题描述】:

我有一个应用程序,我在其中提供源类型为UIImagePickerControllerSourceTypeCameraUIImagePickerController。一切正常,除非我离开应用程序并返回(启用了多任务处理,因此应用程序从停止的地方返回)并且我再次显示 UIImagePickerController。它出现在屏幕上但相机从不显示,相机显示的动画从未发生,这里是截图:

如果我按取消并再次显示UIImagePickerController,相机将正常显示。所以这个问题唯一出现的时候是我回到应用程序后第一次展示UIImagePickerController。有谁知道为什么会这样?我正在为 iOS 5 编写代码

我正在向UIImagePickerController 提交:

[self presentViewController:capturePhotoPicker animated:YES completion:nil];

并通过以下方式将其解雇:

[self dismissViewControllerAnimated:YES completion:nil];

我每次展示时都使用相同的 UIImagePickerController 对象

【问题讨论】:

  • 将其更改为 [self presentModalViewController:capturePhotoPicker animated: YES];相机是模态的。
  • CodaFi,您提出了一种过时的显示模态视图控制器的方法,抱歉,但这并没有帮助。 (根据 Apple 的说法,presentViewController:animated:completion: 方法是呈现任何视图控制器的首选方式,您只需调整呈现样式以使其成为模态等)
  • Apple 不允许堆叠导航栏。由于图像选择器有自己的导航栏,它不能放在导航堆栈中。例如。模态或无。 “过时”是什么意思?这与事实相去甚远。过时意味着已弃用,而 presentModalViewController 似乎并没有向我抛出弃用警告:P
  • CodaFi,我没有说不推荐使用,我认为您需要阅读 iOS 5 中的新功能 :) “presentViewController:animated:completion: 方法是将模态视图呈现为的首选方法iOS 5.0 的。” -苹果。这不是模态显示视图的问题,两种方法都会产生相同的结果。仅供参考,UIImagePicker 设置为相机时没有导航栏。
  • 看到这个答案解决了我的类似问题:stackoverflow.com/questions/1759194/…

标签: ios ipad uiviewcontroller ios5 uiimagepickercontroller


【解决方案1】:

我遇到了完全相同的问题,然后意识到我在提交 UIImagePickerController 后并没有发布它。现在,相机在离开并返回应用后第一次可以正常工作。

这是我的确切代码:

UIImagePickerController *takePhotoController = [[UIImagePickerController alloc] init];
takePhotoController.sourceType = UIImagePickerControllerSourceTypeCamera;
takePhotoController.delegate = self;

[self presentModalViewController:takePhotoController animated:YES];
[takePhotoController release];

这是您可以花很多时间解决的问题之一,解决方案并不那么明显(好吧,对我来说不是),所以我希望这对某些人有所帮助!

【讨论】:

  • 释放/保留对象是为了恐龙时代。你应该使用 ARC 并让系统为你处理它。
  • 我正在使用 ARC,但我仍然有保存问题
【解决方案2】:

如果您将 -(void)viewDidLoad 更改为 - (void)viewDidAppear:(BOOL)animated 它可以解决问题。在过去的两周里,我一直在试图解决这个问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-20
    • 2012-12-10
    • 1970-01-01
    • 2011-12-10
    • 2012-09-18
    • 1970-01-01
    相关资源
    最近更新 更多