第二次加载时自定义UIImagePickerController问题

时间:2011-06-17 11:07:08

标签: iphone objective-c ios4

我已经制作了一个带有自定义叠加视图的UIImagePickerController,以便增强界面,并且在我第一次加载它时效果很好,这是完美的。 问题是,如果我解雇它然后再次显示它我有一个奇怪的错误。摄像机视图和叠加层显示在导航栏和前一个视图控制器的TabBar后面。

我尝试了不同的实现方法,但我无法解决这个问题。

以下是我调用UIImagePickerController的方法。它的灵感来自this sample code

[self.cameraOverlayViewController setupImagePicker:UIImagePickerControllerSourceTypeCamera];
[self presentModalViewController:self.cameraOverlayViewController.imagePickerController animated:YES];

拍完照片后,我解雇了UIImagePickerController:

[self dismissModalViewControllerAnimated:YES];

绝对没有什么特别的实施方式。

这里有两个截图:

At first launch

现在第二次发布: At second launch http://puic.dev.madebykawet.com/IMG_0929.PNG

感谢您的回答!

2 个答案:

答案 0 :(得分:0)

你试过这样的事吗?

//hide all controls
picker.showsCameraControls = NO;
picker.navigationBarHidden = YES;
picker.toolbarHidden = YES;

答案 1 :(得分:0)

感谢您的帮助Peko,但事实并非如此。

经过几个小时的尝试,我发现我需要从根控制器启动UIImagePickerController。 这可能是因为我正在使用Three20库中的TTNavigator。

所以我的情况就是这样:

[[TTNavigator navigator].rootViewController presentModalViewController:self.cameraOverlayViewController.imagePickerController animated:YES];

而不是:

[self presentModalViewController:self.cameraOverlayViewController.imagePickerController animated:YES];

对于dismissModalViewControllerAnimated同样的事情:

[[TTNavigator navigator].rootViewController dismissModalViewControllerAnimated:YES];