Я использую пользовательский UIImagePickerController
, и мне нужен UINavigationBar
также в том же контроллере, поэтому вместо отображения кнопок захвата камеры по умолчанию я стараюсь использовать пространство в самой панели навигации, на действие кнопки я попытался вызвать метод съемки, но его разбился. какова правильная процедура.iOS: Сбой возникает при использовании метода takePicture
// prepare imagePicker view
imagePicker = [[UIImagePickerController alloc] init];
imagePicker.delegate = self;
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePicker.cameraDevice = UIImagePickerControllerCameraDeviceFront;
imagePicker.showsCameraControls = NO;
isFront = YES;
cameraType = @"front";
UIBarButtonItem *takePictureButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCamera target:imagePicker.view action:@selector(captureImage:)];
UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc]initWithTitle:@"Cancel" style:UIBarButtonItemStyleBordered target:self action:@selector(flip:)];
self.navigationItem.rightBarButtonItems = [[NSArray alloc]initWithObjects:takePictureButton,cancelButton, nil];
-(void)captureImage:(id)sender
{
[imagePicker takePicture];
}
- (void) flip: (id) sender
{
if(isFront)
{
cameraType = @"front";
isFront = NO;
imagePicker.cameraDevice = UIImagePickerControllerCameraDeviceFront;
}
else
{
isFront = YES;
cameraType = @"rear";
imagePicker.cameraDevice = UIImagePickerControllerCameraDeviceRear;
}
}
Была ли она протестирована на реальном устройстве? – ldindu
Вам также необходимо добавить код для - (void) imagePickerController: (UIImagePickerController *) picker didFinishPickingMediaWithInfo: (NSDictionary *) info; метод. Может быть, может быть что-то для краха. –
Я протестировал в реальном устройстве его разбился, и я включил все его методы делегирования. – Logunath