首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >解除UIImagePickerController

解除UIImagePickerController
EN

Stack Overflow用户
提问于 2013-05-10 13:05:07
回答 4查看 14.4K关注 0票数 3

我尝试过每一种不同的方法来消除一个UIImagePickerController,但没有任何运气。我做错了什么。

代码语言:javascript
运行
复制
- (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。

请注意,每次都会调用日志语句。

干杯

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-05-10 13:58:24

尝试这一行。这可能对你有用。

代码语言:javascript
运行
复制
[self.picker dismissModalViewControllerAnimated:NO];

对于iOS 6和更高版本,请使用以下命令

代码语言:javascript
运行
复制
[self.picker dismissViewControllerAnimated:NO completion:nil];

还可以使用此代码来呈现选取器控制器

代码语言:javascript
运行
复制
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];
}
票数 9
EN

Stack Overflow用户

发布于 2013-05-10 13:46:43

您运行的是iOS 6吗?如果是这样,presentModalViewController:将被弃用,并可能导致一些意外的结果。请尝试使用presentViewController:animated:completion:

但从技术上讲,你需要做的就是:

代码语言:javascript
运行
复制
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)imagePicker
{
   [imagePicker dismissViewControllerAnimated:NO completion:nil];//Or call YES if you want the nice dismissal animation
}
票数 6
EN

Stack Overflow用户

发布于 2015-01-12 21:06:59

对于Swift,请使用以下命令:

代码语言:javascript
运行
复制
func imagePickerControllerDidCancel(picker: UIImagePickerController!) {
    picker.dismissViewControllerAnimated(true, completion: nil)
}
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16475506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档