J'essaie d'utiliser l'interface UIImagePickerController à partir d'OS 3.1, avec cameraOverlayView et takePicture, mais j'ai clairement échoué à comprendre comment cela fonctionne, et donc je ne reçois pas le comportement que j'ai vouloir. Ce que je veux faire, c'est ouvrir l'appareil photo et prendre une photo automatiquement sans avoir à interagir avec le sélecteur ou modifier l'image. Donc, je sous-classe UIImagePickerController (similaire à l'exemple http://github.com/pmark/Helpful-iPhone-Utilities/tree/master/BTL%20Utilities/) et désactiver toutes les commandes:iPhone: prendre une photo par programmation
- (void)displayModalWithController:(UIViewController*)controller animated:(BOOL)animated {
self.sourceType = UIImagePickerControllerSourceTypeCamera;
self.showsCameraControls = NO;
self.navigationBarHidden = YES;
self.toolbarHidden = YES;
// Setting the overlay view up programmatically.
ipView = [[ImagePickerView alloc] init];
self.cameraOverlayView = ipView;
[controller presentModalViewController:self animated:NO];
}
Dans le overlayView, j'ai réussi à forcer la méthode takePicture de UIImagePickerController au feu (je sais, parce que Je peux le NSLog, et j'entends le bruit de l'appareil photo en prenant une photo). La superposition s'affiche très bien. Cependant, la méthode déléguée didFinishPickingMediaWithInfo: ne reçoit jamais d'appel, et imagePickerControllerDidCancel n'est pas appelée non plus.
Alors, comment puis-je obtenir les méthodes déléguées pour être appelé, ou enregistrer l'image en remplaçant la méthode takePicture? (Je n'ai aucune idée de comment capturer les données d'image ici, et Google semble m'avoir échoué). Je ne peux pas aider le sentiment que je n'ai pas réussi à comprendre comment le courage des travaux UIImagePickerController, mais les documents ne sont pas trop utiles:
par exemple:
« Vous pouvez fournir une vue de superposition personnalisé pour afficher une interface de prise de vue personnalisée et vous pouvez lancer la prise d'images à partir de votre code.Votre affichage de superposition personnalisée peut être affiché en plus ou à la place des contrôles par défaut fournis par l'interface du sélecteur d'image. "
ou de showCameraControls:
« Si vous définissez cette propriété sur NO et de fournir vos propres contrôles personnalisés, vous pouvez prendre plusieurs photos avant de rejeter l'interface de sélecteur d'image. » - Comment rejeter l'interface du sélecteur?
Remarque: le délégué est défini correctement dans IB, ce n'est donc pas le problème.
Merci pour toute aide que vous pouvez fournir!