为dismissModalViewControllerAnimated设置一个委托

Posted

技术标签:

【中文标题】为dismissModalViewControllerAnimated设置一个委托【英文标题】:set a delegate for dismissModalViewControllerAnimated 【发布时间】:2013-02-13 02:06:16 【问题描述】:

我的应用中有一个 UIImagePickerController,它使用 didFinishPickingMediaWithInfo 委托来监控用户是否选择了图像。

-(void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info

    NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType];

    if ([mediaType isEqualToString:(NSString *)kUTTypeImage]) 
        UIImage *image = [info
                          objectForKey:UIImagePickerControllerOriginalImage];
    
    [picker dismissModalViewControllerAnimated:YES];

当调用 [picker dismissModalViewControllerAnimated:YES] 时,它会关闭当前的 UIImagePickerController 视图并返回到 UIImagePicker 显示之前的视图。我想设置一个委托以在调用 dismissModalVewControllerAnimated 时将所选图像发送回上一个视图。我怎么做?非常感谢!

【问题讨论】:

【参考方案1】:

应在创建选取器时设置委托。您要返回创建选择器的控制器吗?如果是这样,它应该在那时将自己设置为委托人。您应该使用dismissViewControllerAnimated:completion: 而不是贬值的dismissModalViewController。

【讨论】:

谢谢。是的,它会回到创建选择器的那个。我是 xcode 的新手,不知道如何使用它设置委托。你能给我一些指导吗? @user1829700,设置代理很容易,但在您掌握它之前,整个过程可能会有些混乱。基本上,您需要在选择器中添加一个协议和一个委托属性。将成为委托的控制器只需要在创建选择器时执行诸如 picker.delegate = self 之类的操作。我建议您阅读 Apple 文档中的“使用协议”指南。

以上是关于为dismissModalViewControllerAnimated设置一个委托的主要内容,如果未能解决你的问题,请参考以下文章

不能连续调用dismissModalViewController吗?

关闭模态视图控制器时,所有主视图内容向上移动 20px

关闭模态视图控制器

从 uitabbarController 视图中关闭模态视图

NSNotification 和关闭模式视图控制器的问题

在 iOS 中隐藏模态视图控制器(但将其保存在内存中)