iOS: UIImagePickerController и ResignFirstResponder - PullRequest
0 голосов
/ 01 апреля 2012

У меня есть приложение, которое позволяет пользователю выбирать фотографию из своей камеры и отображать ее в 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;
        }
    }

Ответы [ 3 ]

1 голос
/ 01 апреля 2012

Попробуйте

[self dismissModalViewControllerAnimated:YES];
1 голос
/ 01 апреля 2012

Вам нужна только эта строка для отклонения модального средства выбора в вашем методе делегата:

[picker dismissModalViewControllerAnimated:YES];

resignFirstResponder в этом случае бесполезен

0 голосов
/ 03 апреля 2012

Поскольку вы хотите отклонить только представление выбора, а не родительское представление выбора

, вам просто нужно использовать:

[picker dismissModalViewControllerAnimated:YES];

и все готово.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...