4

在我通过 UIImagePickerController 接口从照片库中选择一张图片后,照片库视图仍然显示,即使我在imagePickerController:didFinishPickingImage:editingInfo调用了 dismissModelViewControllerAnimated 。

有人见过这个吗?这些是我正在使用的三种相关方法:

- (IBAction)choosePictureFromLibrary:(id)sender {
    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {
        UIImagePickerController* picker = [[UIImagePickerController alloc] init];
        picker.delegate = self;
        picker.allowsImageEditing = YES;
        picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
        [self presentModalViewController:picker animated:YES];
        [picker release];
    }
    else {
        UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"Error accessing Photo Library" message:@"This device does not support a Photo Library." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [alert show];
        [alert release];
    }
}


- (void)imagePickerController:(UIImagePickerController*)picker didFinishPickingImage:(UIImage*)image editingInfo:(NSDictionary*)editingInfo {   
    UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"Picture picked!" message:@"You picked a picture!" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
    [alert show];
    [alert release];

    [picker dismissModalViewControllerAnimated:YES];
}


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

我原以为调用 imagePickerController:didFinishPickingImage:editingInfo 会完全关闭照片库视图,但似乎没有。我还需要做什么才能让它消失吗?

4

3 回答 3

6

您需要访问选择器的 viewController 而不是选择器本身。试试这条线。

[[picker parentViewController] dismissModalViewControllerAnimated:YES];
于 2009-03-25T19:34:30.673 回答
3

你可以打电话

[self dismissModalViewControllerAnimated:YES];

关闭当前视图顶部的任何模态视图控制器。

这是有道理的,因为您通过调用呈现视图控制器:

[self presentModalViewController:picker animated:YES];
于 2009-06-03T21:38:22.097 回答
1

只是对此答案的更新

 [self dismissModalViewControllerAnimated:YES];

已被弃用,iOS 6.0因此您现在需要使用。

 [self dismissViewControllerAnimated:YES completion:nil];

变化不大,但对于任何看到这个问题并且他们正在使用 iOS 6.0 的人来说,他们需要一个更新的答案。

 [self presentModalViewController:filePicker animated:YES];

也已被弃用,取而代之的是

 [self presentViewController:filePicker animated:YES completion:nil];
于 2012-12-06T12:35:23.603 回答