2011-04-11 38 views
2

我读过iPad必须使用UIPopoverController才能查看PhotoLibrary,但是,我编辑了代码使其成为弹出窗口,但在选择图片时它不会隐藏。我发现它没有达到didFinishpickingMediaWithInfo。我错过了什么?这里是我的代码弹出窗口中的ImagePicker不会隐藏

-(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视频,阅读在互联网上的每一篇文章并尝试几乎所有东西。我将衷心感谢您的帮助。

+0

如果你注释掉[ipc release]'会发生什么? – 2011-04-11 01:26:08

+0

没什么不同:) – 2011-04-11 01:38:09

+0

'-imagePickerDidCancel:'被解雇了吗? – 2011-04-11 01:41:22

回答

6

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

第二个问题是对父级调用解雇或者选择器不会隐藏弹出窗口。相反,请尝试拨打[popover dismissPopoverAnimated:YES];

+0

OH MY GOD !!!!!!!!!!!!!!!! – 2011-04-11 03:10:31

+0

感谢万安娜:D – 2011-04-11 03:11:00

+0

@RawanWabil你为什么没有把答案标记为接受呢? – 2014-01-18 12:43:23

相关问题