Iphone iOS 7 UIImagePickerController摄像头覆盖静态图像

Iphone iOS 7 UIImagePickerController摄像头覆盖静态图像,iphone,ios,uiimagepickercontroller,ios7,Iphone,Ios,Uiimagepickercontroller,Ios7,iOS 7使用UIImagePickerController拍摄两次照片,第二次将显示覆盖相机的静态图像,如何重置相机。 我正在试着一张一张地拍,然后一直拍5张 它在iOS6上工作 在iOS7上,它第一次可以正常工作,但是第二次拍照时,它会在屏幕上显示一个静态暗图像,如何清除或重置它,虽然拍照可以工作,但用户看不到用相机拍摄的内容 bool fistTimeToShow = YES; -(void) viewDidAppear:(BOOL)animated{ if (fistTimeT

iOS 7使用UIImagePickerController拍摄两次照片,第二次将显示覆盖相机的静态图像,如何重置相机。

我正在试着一张一张地拍,然后一直拍5张

它在iOS6上工作

在iOS7上,它第一次可以正常工作,但是第二次拍照时,它会在屏幕上显示一个静态暗图像,如何清除或重置它,虽然拍照可以工作,但用户看不到用相机拍摄的内容

bool fistTimeToShow = YES;

-(void) viewDidAppear:(BOOL)animated{
    if (fistTimeToShow) {
        fistTimeToShow = NO;

        self.imagePickerController = nil;

        [self tackImage];
    }
}

-(void)tackImage{
    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {

        self.imagePickerController = [[UIImagePickerController alloc]init];
        self.imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
        self.imagePickerController.showsCameraControls = YES;
        self.imagePickerController.delegate = self;

        [self presentViewController:self.imagePickerController animated:NO completion:nil];
    }
}

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
    NSLog(@"====== imagePickerController:didFinishPickingMediaWithInfo ======");
    [self.imagePickerController dismissViewControllerAnimated:NO completion:nil];

    //...deal with the image capture...

    self.imagePickerController = nil;

    [self tackImage];
}
更新 我更改了dismise函数以放置
[self-tackImage]在块中。现在它总是显示拍摄的第一张照片

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
    NSLog(@"====== imagePicker: didFinish ======");

    self.imagePickerController = nil;

    [self dismissViewControllerAnimated:NO completion: ^{
        [self tackImage];
    }];
}
我在想办法清除图像。但我还不知道图像保存在哪里

更新2 使用

和功能

-(void)presentCameraView{
    [self presentViewController:self.imagePickerController animated:NO completion:nil];
}
取代<代码>[self-presentViewController:self.imagePickerController动画:无完成:无]它在我的设备上运行,但我甚至不知道为什么

更新3
我已将
userInteractionEnabled
设置为
NO
Delay:1.0f
时,以避免其他问题,并且可能还需要设置
导航栏
选项卡栏
,以便专门使用

我在iOS 7下使用Xamarin.iOS时遇到了完全相同的问题

有帮助的是在
didFinishPickingMediaWithInfo
方法中添加
GC.Collect()
。 在C#
GC.Collect()
中,从未使用/已处理的对象中“清理”内存


当然,在Obj-C中没有直接的等价物,但这也可能会对您的问题有所帮助(可能与内存有关)。

我已经读过这篇文章,现在测试一些东西黑色摄像头的问题很常见,我也有一个关于它的问题。。如果你得出结论,请告诉我,你会做同样的@Heavy_Bullets是的,我给苹果发了一份bug报告,等待反馈。任何结果都会让你知道。我也是,但他们问我一个例子项目。。。我不能重现这个问题(如果我可以,那就不是问题),如果有人举个例子,让我来举个例子know@Heavy_Bullets,我创建了一个简单的演示应用程序,可以重现我的问题,并附加到错误报告。我只是用一个开发配置文件构建它,不确定它是否正确。正在等待苹果的回复。谢谢,我认为这是一种与内存相关的问题,看起来图像没有很快清理干净,但无论如何。我记得有人自己制作了图像选择器控制器,它可以工作,所以我认为问题在于苹果的图像选择器控制器。
-(void)presentCameraView{
    [self presentViewController:self.imagePickerController animated:NO completion:nil];
}