我有一个带相机的应用程序。用户按下按钮,视图变为摄像机视图。
在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];
}
我不确定如何在每次打开相机时阻止视图加载。
谢谢
答案 0 :(得分:0)
为您的班级添加BOOL ivar。下面有一些伪代码
YourController {
BOOL didShow;
}
-(void)viewDidAppear:(BOOL)animated {
if (!didShow) {
// present the UIImagePickerController
}
didShow = YES;
}