Уволить UIImagePickerController
Я перепробовал все варианты увольнения UIImagePickerController без какой-либо удачи. Что я делаю не так?
- (IBAction)choosePhoto
{
self.picker = [[UIImagePickerController alloc] init];
self.picker.delegate = self;
self.picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
[self presentModalViewController:self.picker animated:YES];
}
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)imagePicker
{
NSLog(@"dismiss image picker");
[self dismissModalViewControllerAnimated:NO];
[[self.picker parentViewController] dismissModalViewControllerAnimated:NO];
[self.presentedViewController dismissModalViewControllerAnimated:NO];
[self.presentingViewController dismissModalViewControllerAnimated:NO];
// And every other way i could think of
}
- (void)imagePickerController:(UIImagePickerController *)imagePicker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
.. same stuff here
}
Я попытался представить выбор от родителя, дедушки, navigationController и корневого контроллера, и ничего не работает. Что бы я ни делал, я не могу отмахнуться от ImagePickerController.
Обратите внимание, что оператор log вызывается каждый раз.
Ура
4 ответа:
Попробуйте эту линию. Это может сработать для тебя.
[self.picker dismissModalViewControllerAnimated:NO];
И для iOS 6 и позже использовать этот
[self.picker dismissViewControllerAnimated:NO completion:nil];
Также используйте этот код для представления вашего контроллера выбора
if ([self respondsToSelector:@selector(presentViewController:animated:completion:)]){ [self presentViewController:self.picker animated:YES completion:nil]; } else { //To target iOS 5.0 [self presentModalViewController:self.picker animated:YES]; }
Вы используете iOS 6? Если это так, то
Но технически, вот все, что вам нужно сделать:presentModalViewController:
является устаревшим и может привести к некоторым неожиданным результатам. Попробуйте вместо этого использоватьpresentViewController:animated:completion:
.- (void)imagePickerControllerDidCancel:(UIImagePickerController *)imagePicker { [imagePicker dismissViewControllerAnimated:NO completion:nil];//Or call YES if you want the nice dismissal animation }