弹出窗口中的ImagePicker不会隐藏

时间:2011-04-11 01:23:28

标签: ios ipad uiimagepickercontroller uipopovercontroller

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

我发现它没有到达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视频,阅读互联网上的每篇文章,并尝试了几乎所有内容。我非常感谢你的帮助。

1 个答案:

答案 0 :(得分:6)

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

第二个问题是在父级上调用dismiss或者选择器不会隐藏popover。相反,请尝试拨打[popover dismissPopoverAnimated:YES];