0

我有一个应用程序,允许用户从他们的相机胶卷中选择一张照片,并将其显示在 UIImageView 中。但是,在他们点击他们想要显示的图像后,相机胶卷的视图并没有消失。所以,我认为我需要简单地调用[sender resignFirstResponder];. 但是,这并没有奏效。我一直在尝试多种方法并四处寻找,但无济于事。我对 Objective-C 非常陌生,因此非常感谢任何帮助。这是我正在使用的代码:(imgPicker 是 UIImagePickerController。)

 - (IBAction)grabImage(id)sender {
        self.imgPicker = [[UIImagePickerController alloc] init];
        self.imgPicker.delegate = self;
        self.imgPicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

        if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
            _popover = [[UIPopoverController alloc] initWithContentViewController:imgPicker];
            [_popover presentPopoverFromRect:self.imageView.bounds inView:self.imageView permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
        } 

        else {
            [self presentModalViewController:imgPicker animated:YES];
        }
        [self.imgPicker resignFirstResponder];
    }

这可能与问题相关,也可能不相关:

    - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)img editingInfo:(NSDictionary *)editInfo {
        if (imageView.image == nil) {
            imageView.image = img;
            [[picker parentViewController] dismissModalViewControllerAnimated:YES];
            return;

        }

        if (imageView2.image == nil) {
            imageView2.image = img;
            [[picker parentViewController] dismissModalViewControllerAnimated:YES];
            return;
        }
    }
4

3 回答 3

1

您只需要这一行即可在您的委托方法中关闭模式选择器:

[picker dismissModalViewControllerAnimated:YES];

resignFirstResponder 在这种情况下是没用的

于 2012-04-01T19:19:21.507 回答
1

尝试

[self dismissModalViewControllerAnimated:YES];
于 2012-04-01T19:38:08.130 回答
0

因为您只想关闭选择器视图而不是选择器的父视图

你只需要使用:

[picker dismissModalViewControllerAnimated:YES];

你就完成了。

于 2012-04-03T10:06:38.817 回答