浏览了多个视图并打开相机后UIImagePickerController相机取消不起作用?

时间:2013-07-19 05:33:00

标签: iphone ios camera uiimagepickercontroller

我在app中有15到20个视图。一个是相机功能。我查看了设置为UIImagePickerController以显示相机的视图。我的问题是,当我在应用程序启动后直接打开相机时,一切正常。我的意思是取消,捕获默认相机功能的功能。但是假设,如果我浏览除地图,webView等相机之外的其他所有内容,如果我打开相机,则取消按钮不起作用(捕获按钮在所有情况下均可正常工作)。捕获后,重新启动,使用等控件正在显示成功但这些按钮也无法访问。

注意:启动后直接打开相机时不会出现上述问题。

这些是我试图解决这个问题的事情。

  1. UIImagePickerController的上一个实例设置nil,并在每次调用camera新功能时重新分配。

  2. 每次在相机打开之前隐藏tabBar,因为我怀疑tabBar的区域可能无法访问。

  3. 将视图的框架设置为完全符合手机屏幕尺寸,以确保可以访问整个视图。

  4. 请注意:

    愿这会有所帮助。

    1. 仅在iPhone3GS中发生这种情况。在所有其他模型中,它的工作效果很好。

    2. 我发现,只有tabBar的部分(存在于所有其他视图中并且仅在打开相机时隐藏)才能访问。我通过按下所有按钮找到了这个,我可以访问tabBar中存在的按钮部分。可能是下面的屏幕截图将会提供更多信息。

    3. enter image description here

      请分享您的想法。

      提前致谢。

      修改

      以下是我用来显示相机的代码。

      -(IBAction)btnCamera_Clicked:(id)sender{
      
          _imgPicker = nil;
          _imgPicker = [[UIImagePickerController alloc] init];
          _imgPicker.delegate = self; 
          _imgPicker.allowsEditing = NO;     
          _imgPicker.wantsFullScreenLayout = YES;
      
          if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])  {
              _imgPicker.sourceType = UIImagePickerControllerSourceTypeCamera;
              _imgPicker.showsCameraControls = NO;
              _imgPicker.cameraOverlayView = vwCameraOverlay;
              [self.tabBarController presentModalViewController:_imgPicker animated:YES];
          }
      }
      

1 个答案:

答案 0 :(得分:3)

使用以下代码

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker{
         [picker dismissModalViewControllerAnimated:YES];
}

<强>编辑:

打开控制器试试

[self.tabBarController presentModalViewController:picker animated:YES];

它应该有用。