【问题标题】:set a delegate for dismissModalViewControllerAnimated为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 时将所选图像发送回上一个视图。我怎么做?非常感谢!

【问题讨论】:

    标签: objective-c xcode delegates uiimagepickercontroller


    【解决方案1】:

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

    【讨论】:

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