UIImagePickerController - PullRequest
       1

UIImagePickerController

1 голос
/ 07 декабря 2011

Я использую UIimagepickercontroller для просмотра или съемки фотографии и отображения ее в подпредставлении.

-(IBAction) getPhoto:(id) sender {

    secondView1 = [[secondView alloc] 
               initWithNibName:@"secondView"
               bundle:nil];
    UIImagePickerController * picker = [[UIImagePickerController alloc] init];
    picker.delegate = self;

    if((UIButton *) sender == choosePhotoBtn) {
        picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
    } else {
        picker.sourceType = UIImagePickerControllerSourceTypeCamera;
    }

    [self presentModalViewController:picker animated:YES];    
    [self.view addSubview:secondView1.view];
}

Это прекрасно работает для SourceTypeSavedPhotoAlbum, но если я использую камеру, secondview1.view не отображается.Вместо этого он показывает только исходный вид.

Это мой метод делегата:

- (void)imagePickerController:(UIImagePickerController *)picker  
        didFinishPickingMediaWithInfo:(NSDictionary *)info {
    secondView1.imageView.image = [info
    objectForKey:@"UIImagePickerControllerOriginalImage"];
    [[picker parentViewController] dismissModalViewControllerAnimated:YES];
    [picker release];
}

Спасибо за любую помощь!

1 Ответ

0 голосов
/ 12 декабря 2011

Я наконец-то обнаружил, что должен выполнить:

secondView1 = [[secondView alloc] 
    initWithNibName:@"secondView"
    bundle:nil];
self.view addSubview:secondView1.view];

в функции делегата.

(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    ...
}

В противном случае addsubview может быть вызвано до того, как сборщик изображений завершит выборкартинка.Теперь лучше понять, как работает код и функции делегата.

...