Ios 无法更改UIImagePickerController的cameraFlashMode

Ios 无法更改UIImagePickerController的cameraFlashMode,ios,camera,uiimagepickercontroller,Ios,Camera,Uiimagepickercontroller,我的自定义相机覆盖上有一个按钮,可调用此方法: - (void) changeFlash:(id)sender { //UIImagePickerControllerCameraFlashModeOff = -1, //UIImagePickerControllerCameraFlashModeAuto = 0, //UIImagePickerControllerCameraFlashModeOn = 1 NSLog(@"before %d", self.p

我的自定义相机覆盖上有一个按钮,可调用此方法:

- (void) changeFlash:(id)sender
{
    //UIImagePickerControllerCameraFlashModeOff  = -1,
    //UIImagePickerControllerCameraFlashModeAuto = 0,
    //UIImagePickerControllerCameraFlashModeOn   = 1
    NSLog(@"before %d", self.picker.cameraFlashMode);
    switch (self.picker.cameraFlashMode) {
        case UIImagePickerControllerCameraFlashModeAuto:
            [(UIButton *)sender setImage:[UIImage imageNamed:@"flashOn"] forState:UIControlStateNormal];
            self.picker.cameraFlashMode = UIImagePickerControllerCameraFlashModeOn;
            break;
        case UIImagePickerControllerCameraFlashModeOn:
            [(UIButton *)sender setImage:[UIImage imageNamed:@"flashOff"] forState:UIControlStateNormal];
            self.picker.cameraFlashMode = UIImagePickerControllerCameraFlashModeOff;
            break;

        case UIImagePickerControllerCameraFlashModeOff:
            [(UIButton *)sender setImage:[UIImage imageNamed:@"flashAuto"] forState:UIControlStateNormal];
            self.picker.cameraFlashMode = UIImagePickerControllerCameraFlashModeAuto;
            break;
    }
    NSLog(@"after %d", self.picker.cameraFlashMode);

}
self.picker.cameraFlashMode在更改前后始终为0。我做错了什么


此外,闪存从不工作,即使它被认为卡在UIImagePickerControllerCameraFlashModeAuto中。

self.picker为零。这是一个常见的错误,您需要经常检查,因为与Java和其他语言不同,在Objective-C中向nil发送消息是有效的。

检查self.picker是否为nil。@soleil我有照相机闪光灯问题。我复制了你的方法。我觉得这是iOS 7.1,我在这里遇到了同样的问题,我强制相机闪光模式为==1,但什么都没有发生。在我的情况下,选择器不等于零,我注意到问题发生在iphone 4上,而不是iphone 5上。我提出了另一个问题: