2011-08-23 5 views
20

Ho un controller di visualizzazione che deve essere in grado di scegliere una foto dall'album fotografico e anche dalla fotocamera. Posso avere solo un metodo delegato per didFinishPickingMediaWithInfo e mentre posso dire se si tratta di un'immagine, non riesco a capire se proviene dall'album o dalla fotocamera (e prima devo salvarlo nell'album). C'è qualcosa nelle informazioni che può aiutarmi a distinguere dai due?Come posso sapere se l'immagine restituita da didFinishPickingMediaWithInfo proveniva dalla fotocamera o dal photoalbum?

Grazie ...

risposta

50

Perché il UIImagePickerController viene passato al metodo, tutto ciò che dovete fare è:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 
    if ([picker sourceType] == UIImagePickerControllerSourceTypeCamera) { 
    // Do something with an image from the camera 
    } else { 
    // Do something with an image from another source 
    } 
} 
8

In Swift3:

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]) { 

    if picker.sourceType == .camera { 
     // Do something with an image from the camera 
    } 
    else { 
     // Do something with an image from another source 
    } 

    } 
+1

In Swift 3.0, è ora 'picker.sourceType == .camera', poiché' .Camera' è stato sostituito da '.camera'. Gli altri valori sono '.photoLibrary' e' .savedPhotosAlbum'. HTH – duthen

Problemi correlati