13.6. Retrieving Photos and Videos from the Photo Library
Problem
You want users to be able to pick a photo or a video from their photo library and use it in your application.
Solution
Use the UIImagePickerControllerSourceTypePhotoLibrary
value for the source type of your UIImagePickerController
and the kUTTypeImage
or kUTTypeMovie
value, or both, for the
media type, like so:
-
(
BOOL
)
isPhotoLibraryAvailable
{
return
[
UIImagePickerController
isSourceTypeAvailable:
UIImagePickerControllerSourceTypePhotoLibrary
];
}
-
(
BOOL
)
canUserPickVideosFromPhotoLibrary
{
return
[
self
cameraSupportsMedia:
(
__bridge
NSString
*
)
kUTTypeMovie
sourceType:
UIImagePickerControllerSourceTypePhotoLibrary
];
}
-
(
BOOL
)
canUserPickPhotosFromPhotoLibrary
{
return
[
self
cameraSupportsMedia:
(
__bridge
NSString
*
)
kUTTypeImage
sourceType:
UIImagePickerControllerSourceTypePhotoLibrary
];
}
-
(
void
)
viewDidLoad
{
[
super
viewDidLoad
];
if
([
self
isPhotoLibraryAvailable
]){
UIImagePickerController
*
controller
=
[[
UIImagePickerController
alloc
]
init
];
controller
.
sourceType
=
UIImagePickerControllerSourceTypePhotoLibrary
;
NSMutableArray
*
mediaTypes
=
[[
NSMutableArray
alloc
]
init
];
if
([
self
canUserPickPhotosFromPhotoLibrary
]){
[
mediaTypes
addObject:
(
__bridge
NSString
*
)
kUTTypeImage
];
}
if
([
self
canUserPickVideosFromPhotoLibrary
]){
[
mediaTypes
addObject:
(
__bridge
NSString
*
)
kUTTypeMovie
];
}
controller
.
mediaTypes
=
mediaTypes
;
controller
.
delegate
=
self
;
[
self
.
navigationController
presentModalViewController:
controller
animated:
YES
Get iOS 6 Programming Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.