【发布时间】:2012-01-07 03:47:09
【问题描述】:
我有一个应用程序,我在其中提供源类型为UIImagePickerControllerSourceTypeCamera 的UIImagePickerController。一切正常,除非我离开应用程序并返回(启用了多任务处理,因此应用程序从停止的地方返回)并且我再次显示 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