2011-08-23 16 views
20

Mam kontroler widoku, który musi być w stanie wybrać zdjęcie z albumu fotograficznego, a także z aparatu. Mogę mieć tylko jedną metodę delegowania dla didFinishPickingMediaWithInfo i kiedy mogę stwierdzić, czy jest to obraz, nie mogę powiedzieć, czy to z albumu, czy z kamery (i muszę najpierw zapisać go w albumie). Czy w informacjach jest coś, co może mi pomóc odróżnić je od dwóch?Jak mogę sprawdzić, czy obraz zwrócony z didFinishPickingMediaWithInfo pochodzi z aparatu lub albumu fotograficznego?

Dzięki ...

Odpowiedz

50

Ponieważ UIImagePickerController jest przekazywany do metody, wszystko co musisz zrobić, to:

- (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

W 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

w Swift 3.0, to teraz 'picker.sourceType == .camera', ponieważ' .Camera' został zastąpiony przez '.camera'. Pozostałe wartości to '.photoLibrary' i' .savedPhotosAlbum'. HTH – duthen

Powiązane problemy