Skip UIImagePickerController Preview View?

2020-08-17 01:59发布

问题:

I'm using UIImagePickerController to allow my user to select a video from the asset library.

When the UIImagePickerController is initially displayed, it shows thumbnails for the various movies that have been recorded.

Once the user selects a movie, it displays a "preview" view which allows them to playback and potentially edit the selected movie.

Is there any way to avoid displaying this view and instead return the movie that was selected on the thumbnail screen?

Here is the code I'm using:

UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
imagePicker.delegate = self;
imagePicker.mediaTypes = [NSArray arrayWithObject:(NSString *)kUTTypeMovie];
imagePicker.allowsEditing = NO;

[self presentModalViewController:imagePicker animated:YES];

回答1:

I haven't tested this myself, though I'll be attempting this in my own application shortly. If you take a look at the UIImagePickerController showsCameraControls documentation, it alludes to the fact that if you eliminate the camera controls you can take as many photos as you want.

So theoretically if you set showsCameraControls to NO, and assign your own cameraOverlayView UIView to let the user take a photo, you can dismiss the image picker without the preview view from showing.



回答2:

Perhaps that helps. You could listen with the NSNotificationCenter on @"_UIImagePickerControllerUserDidCaptureItem". If the user select the item, you could dismiss the imagePicker and do your thumbnail stuff.

I had a similar issue, to remove an overlay on the preview view and could solve it with this approach.