Iphone:图像选择器无法正常工作

时间:2012-06-25 06:43:55

标签: iphone objective-c xcode uiimageview

我正在为imagePicker演示实现,但它无法正常工作。 当我点击选择图像按钮时,什么也没发生。我的代码如下:

-(IBAction)pick:(id)sender
{
    ipc=[[UIImagePickerController alloc]init];
    ipc.delegate=self;
    ipc.sourceType=UIImagePickerControllerSourceTypePhotoLibrary;
    NSLog(@" %@",ipc.sourceType);

    [ipc presentModalViewController:self animated:YES];

}

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

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    img.image=[info objectForKey:UIImagePickerControllerOriginalImage];

    [[picker parentViewController]dismissModalViewControllerAnimated:YES];
    [picker release];
}

3 个答案:

答案 0 :(得分:1)

请更改您的代码

[ipc presentModalViewController:self animated:YES]; 

[self presentModalViewController:ipc animated:YES];

答案 1 :(得分:1)

问题是您尝试使用以下方式呈现模态视图:

[ipc presentModalViewController:self animated:YES];

相反,你应该使用:

[self presentModalViewController:ipc animated:YES];

答案 2 :(得分:0)

这个怎么样:

 -(IBAction)pick:(id)sender
{
       if ([UIImagePickerController isSourceTypeAvailable:
             UIImagePickerControllerSourceTypeCamera])
        {
            UIImagePickerController *imagePicker =
            [[UIImagePickerController alloc] init];
            imagePicker.delegate = self;
            imagePicker.sourceType =
            UIImagePickerControllerSourceTypeCamera;
            imagePicker.mediaTypes = [NSArray arrayWithObjects:
                                      (NSString *) kUTTypeImage,
                                      nil];
            imagePicker.allowsEditing = NO;
            [self presentModalViewController:imagePicker
                                    animated:YES];

            newMedia = YES;
        } 


 -(void) imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    [self.popoverController dismissPopoverAnimated:YES];
    NSString *mediaType = [info
                           objectForKey:UIImagePickerControllerMediaType];

    if ([mediaType isEqualToString:(NSString *)kUTTypeImage]) {
        UIImage *image = [info
                          objectForKey:UIImagePickerControllerOriginalImage];

        imageView.image = image;
        if (newMedia)
            UIImageWriteToSavedPhotosAlbum(image,
                                           self,  
                                           @selector(image:finishedSavingWithError:contextInfo:),
                                           nil);
    }
    else if ([mediaType isEqualToString:(NSString *)kUTTypeMovie])
    {
        // Code here to support video if enabled
    } 
}