2013-03-10 26 views
5

Tôi có một nút trên lớp phủ camera tùy chỉnh của tôi mà gọi phương pháp này:Không thể thay đổi cameraFlashMode cho UIImagePickerController

- (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 luôn là 0, trước và sau khi thay đổi nó. Tôi đang làm gì sai?

Ngoài ra, đèn flash không bao giờ hoạt động, mặc dù nó được cho là bị kẹt trong UIImagePickerControllerCameraFlashModeAuto.

+1

Kiểm tra xem self.picker có phải là không. –

+0

Cảm ơn. Đó là số không. – soleil

+0

@soleil tôi gặp sự cố với flash máy ảnh. tôi đã sao chép phương thức của bạn. và nó hoạt động như một sự quyến rũ. – shaikh

Trả lời

0

self.picker là không. Đây là một lỗi phổ biến, và bạn cần phải kiểm tra điều này thường xuyên, bởi vì, không giống như Java và các ngôn ngữ khác, nó hợp lệ để gửi một thông điệp đến nil trong Objective-C.

+0

Trong trường hợp của tôi bộ chọn không bằng 0 và tôi nhận thấy sự cố xảy ra trên iphone 4 và không phải trên iphone 5. Tôi đã tạo một câu hỏi khác: [link] (http://stackoverflow.com/questions/22403092/cannot-change-cameraflashmode-for-uiimagepickercontroller-iphone-4-custom-camera) – manar

Các vấn đề liên quan