I have bug with UIImagePickerController which source type is camera. Sometimes after controller appeared, shutter is not opens up and I can't to see a camera video signal, but photo taken is correct.
May be I doing something wrong? Code:
if ([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera]){
UIImagePickerController *cameraUI = [[UIImagePickerController alloc] init];
cameraUI.sourceType = UIImagePickerControllerSourceTypeCamera;
cameraUI.allowsEditing = NO;
cameraUI.showsCameraControls = NO;
cameraUI.delegate = self;
NSArray *nibObjects = [[NSBundle mainBundle] loadNibNamed:@"OverlayView" owner:self options:nil];
UIView *controlsView = [nibObjects objectAtIndex:0];
CGRect overlayViewFrame = cameraUI.cameraOverlayView.frame;
CGRect controlsFrame = CGRectMake(0.0, CGRectGetHeight(overlayViewFrame) - 54.0,
CGRectGetWidth(overlayViewFrame), 54.0);
controlsView.frame = controlsFrame;
[cameraUI.cameraOverlayView addSubview:controlsView];
[self presentModalViewController: cameraUI animated: YES];
}
If you are presenting the
UIImagePickerController
not modally (the recommended way), then you can either call the viewDidAppear and willAppear manually, or add the UIImagePickerController as child view controller from where you are presenting .after this you can add the view from the imagePickerController as a subview, this will make the view life cycle methods (
viewWillAppear, didAppear and disappear
) called automatically.Try adding auto release when you initialize the
UIImagePickerController
:The same was happening to me after locking/unlocking the app, it looks like the shutter opens on viewDidAppear.
So, I subscribed my parent view controller to
UIApplicationDidBecomeActiveNotification
and re-execute manually the viewWillAppear and viewDidAppear methods of the controller containing the UIImagePickerControllerAnd then on the controller containing the UIImagePickerController
PS: If you try this, don't forget to remove the observer
Hope this helps