相机在ViewDidAppear上保持打开。我可以停止这个吗?

时间:2014-06-13 21:41:05

标签: objective-c

我有一个带相机的应用程序。用户按下按钮,视图变为摄像机视图。

在cameraView中,我将pickerControl放在viewDidLoad中。

当视图出现时,相机会打开并允许用户拍照。完成后,用户可以选择保留照片,如果他这样做,摄像机视图就会消失,在那一刻,我可以看到我拍摄的照片中我拍摄的照片,但相机一直打开。

我认为这是因为我的viewDidLoad中有我的pickerControl,每次相机都会解散,因此,它会反复打开相机。有没有办法解决? 这是我的cameraViewController,当用户选择相机选项

时加载
  - (void)viewDidLoad
     {



          [super viewDidLoad];
     }


      //  When the view appears, the camera will turn on

   -(void)viewDidAppear:(BOOL)animated

       {

     //      Initialize the picker control
          UIImagePickerController *pickerControl = [[UIImagePickerController alloc] init];

     //          If all's good, start up the camera
              if ((pickerControl != nil)&&(picHolder == nil))
              {
                pickerControl.sourceType = UIImagePickerControllerSourceTypeCamera;
                pickerControl.delegate = self;
                pickerControl.allowsEditing = true;

               }
     //              Camera turns on


            [self presentViewController:pickerControl animated:true completion:nil];


}

我不确定如何在每次打开相机时阻止视图加载。

谢谢

1 个答案:

答案 0 :(得分:0)

为您的班级添加BOOL ivar。下面有一些伪代码

YourController {
  BOOL didShow;
}

-(void)viewDidAppear:(BOOL)animated {
  if (!didShow) {
    // present the UIImagePickerController
  }
  didShow = YES;
}