Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 摄像机在VIEWDID显示时一直打开..我如何才能阻止这种情况?_Objective C - Fatal编程技术网

Objective c 摄像机在VIEWDID显示时一直打开..我如何才能阻止这种情况?

Objective c 摄像机在VIEWDID显示时一直打开..我如何才能阻止这种情况?,objective-c,Objective C,我有一个带摄像头的应用程序。用户按下按钮,视图将更改为摄影机视图 在cameraView中,我将pickerControl置于viewDidLoad中 当视图出现时,相机将打开并允许用户拍照。完成后,用户可以选择保留照片,如果他保留了,相机视图将关闭,在那一刻,我可以在我创建的图像viws中看到我拍摄的照片,但相机会一直打开 我想这是因为我的viewDidLoad中有我的pickerControl,每次相机关闭时,它都会反复打开相机。这有什么办法吗? 这是我的cameraViewControll

我有一个带摄像头的应用程序。用户按下按钮,视图将更改为摄影机视图

在cameraView中,我将pickerControl置于viewDidLoad中

当视图出现时,相机将打开并允许用户拍照。完成后,用户可以选择保留照片,如果他保留了,相机视图将关闭,在那一刻,我可以在我创建的图像viws中看到我拍摄的照片,但相机会一直打开

我想这是因为我的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];


}
我不知道如何防止每次打开相机时都加载视图


谢谢你

在你的课堂上添加一个BOOL-ivar。下面是一些伪代码

YourController {
  BOOL didShow;
}

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

尤金,这很有效!你能不能快速详细说明一下这是怎么回事?布尔·迪德肖;我以前从未见过它?再次感谢!基本上,您正在设置一个BOOL变量,该变量可以有任何其他名称,只需检查-viewdideappease:是否至少被调用过一次。如果不是如果!didShow-您正在向用户演示图像选择器