弹出窗口中的 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 Mobile 中的弹出窗口没有按预期工作,请咨询
iscrollview 和 jquery 移动弹出窗口底部内容隐藏