弹出窗口中的 ImagePicker 不会隐藏

Posted

技术标签:

【中文标题】弹出窗口中的 ImagePicker 不会隐藏【英文标题】:ImagePicker in a popover does not hide 【发布时间】:2011-04-11 01:23:28 【问题描述】:

我已经读到 iPad 必须使用UIPopoverController 来查看 PhotoLibrary,但是,我已经编辑了代码来制作它,弹出框显示但当我选择图片时它不会隐藏。

我发现它没有到达didFinishpickingMediaWithInfo。我错过了什么吗?这是我的代码

-(IBAction) ButtonClicked

    ipc = [[UIImagePickerController alloc] init];
    ipc.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    ipc.delegate=self;
    popover = [[UIPopoverController alloc] initWithContentViewController:ipc];
    [ipc release];
    [popover presentPopoverFromRect:CGRectMake(0.0, 0.0, 800.0, 400.0) 
                             inView:self.view
           permittedArrowDirections:UIPopoverArrowDirectionAny 
                           animated:YES];   

这里:

-(void) imagePickerControllerDidCancel:(UIImagePickerController *)picker
    [[picker parentViewController] dismissModalViewControllerAnimated:YES];
    [picker release];

这里:

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

 // TempImage is a UIImage instance
    TempImg = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
    //bgImage is a UIImageView instance and it's connected in the IB
    [bgImage setImage:TempImg];
    // Dismiss UIImagePickerController and release it
    [picker dismissModalViewControllerAnimated:YES];
    [picker.view removeFromSuperview];
    [picker release];

我真的需要别人的帮助,我已经观看了每个 youtube 视频,阅读了互联网上的每篇文章,并且几乎尝试了所有方法。非常感谢您的帮助。

【问题讨论】:

如果你注释掉[ipc release]会发生什么? -imagePickerDidCancel: 被解雇了吗? 没有。如果你不介意,我想问你一个问题,不要浪费你的时间,我知道的是,当我从照片库中单击一张照片时,didFinishPicking 应该可以工作,对吧?还是我应该提供一个按钮之类的? 【参考方案1】:

第一个问题是方法didFinishpickingMediaWithInfo 拼写错误,所以它不会被调用。应该是didFinishPickingMediaWithInfo(大写 P 表示 Picking)。

第二个问题是在父级上调用dismiss,否则选择器不会隐藏弹出框。相反,请尝试致电[popover dismissPopoverAnimated:YES];

【讨论】:

以上是关于弹出窗口中的 ImagePicker 不会隐藏的主要内容,如果未能解决你的问题,请参考以下文章

滚动页面时隐藏jquery移动弹出窗口

jQuery Mobile 中的弹出窗口没有按预期工作,请咨询

iscrollview 和 jquery 移动弹出窗口底部内容隐藏

从弹出窗口中的 UISwitch 操作中隐藏 UIImageView (iPad)

在显示推送通知弹出窗口时禁用点击主页按钮

弹出窗口中的 UITableView 不会停止滚动