Paso 3: launchCameraController
- bajo #import < UIKit/UIKit.h > añada la línea #import < MobileCoreServices/MobileCoreServices.h >
- Después ViewController: UIViewController agregar < UIImagePickerControllerDelegate, UINavigationControllerDelegate >
Esto hace que sea un delegado de uiimagepicker y uinavigationcontroller, lo que nos permite controlar los eventos de la cámara
ViewController.m abierto
- Entre los paréntesis en (ViewController) Añadir CameraDelegateMethods
- Entre el método de openCamera y-(BOOL) launchCameraControllerFromViewController: (UIViewController *) controlador usingDelegate: (id < UIImagePickerControllerDelegate, UINavigationControllerDelegate >) delegado {}
Este es el método que utilizaremos para iniciar el controlador de la cámara
- En el método de launchCameraController, tenemos que comprobar si se dispone de una cámara para el uso en primer lugar, por lo que añadimos las siguientes líneas:
BOOL truefalse = [UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]; variable para comprobar si se dispone de una cámara
Si hay una cámara, el delegado pasado existe, y existe el controlador pasando, seguir, de lo contrario no ir más lejos
Si (! truefalse || (delegado == nil) || (Controller == Nil)) {
NSLog (puede hacer, no existe controlador de vista de cámara de delegado!");
volver NO;
}
Ahora que nosotros hemos verificado que hay una cámara, podemos proceder a iniciar el controlador de la cámara
- Declaramos una variable UIimagePickerController e inicializarlo (UIImagePickerController * cameraController = [[UIImagePickerController alloc] init];)
- Establecemos su sourceType a UIImagePickerControllerSourceTypeCamera
- sus tipos de medios de comunicación a [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeCamera]
- Set allowsEditing en NO
- luego ajuste el delegado a delegado
En caso de ojos esmaltados, o no sabes cómo, aquí está el código:
cameraController.sourceType = UIImagePickerControllerSourceTypeCamera;
cameraController.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeCamera];
cameraController.allowsEditing = NO;
cameraController.delegate = delegado;
- después de todo eso, lanzar llamando [presentModalViewController:cameraController controlador de animación: sí];
- Ahora, regresa al método openCamera y agregar [launchCameraControllerFromViewController:self del usingDelegate:self]; lanzamiento del controlador de la cámara