1

Cannot set the camera flash properly for iOS versions 10 and above (this is working correctly in iOS 9). It always defaults to UIImagePickerControllerCameraFlashModeAuto.

Here's my code:

UIImagePickerController *picker = [[UIImagePickerController alloc] init];
[picker setAllowsEditing:NO];
[picker setDelegate:self];
[picker setSourceType:UIImagePickerControllerSourceTypeCamera];
[picker setCameraFlashMode:UIImagePickerControllerCameraFlashModeOn];
[picker setCameraOverlayView:overlayView];
[self presentViewController:picker animated:YES completion:Nil];
VC.One
  • 14,790
  • 4
  • 25
  • 57

1 Answers1

2

So I guess I have to wait for the UIImagePickerController to be rendered and set the camera flash again.

So I updated

[self presentViewController:picker animated:YES completion:nil];

to

[self presentViewController:picker animated:YES completion:^{
    //For iOS 10 and higher versions so it can set the proper flashmode
    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 10) {
       [picker setCameraFlashMode:UIImagePickerControllerCameraFlashModeOn];
    }
}];

Hope this could help.