iPhone SDK - Как отобразить фотографию, сделанную камерой, внутри UINavigationController? - PullRequest
0 голосов
/ 17 февраля 2010

На данный момент это мой код:

/* class: myViewController
@interface myViewController: UIViewController
       <UIImagePickerControllerDelegate, UINavigationControllerDelegate>
*/
- (IBAction) getPicture {
    UIImagePickerController * picker = [[UIImagePickerController alloc] init];
       picker.delegate = self;
       picker.sourceType = UIImagePickerControllerSourceTypeCamera;
       [self presentModalViewController:picker animated:YES];
}

- (void) imagePickerController:(UIImagePickerController *)thePicker 
                    didFinishPickingMediaWithInfo:(NSDictionary *)imageInfo
{
    [[thePicker parentViewController] dismissModalViewControllerAnimated:YES];
       UIImage *img = [imageInfo
                           objectForKey:@"UIImagePickerControllerOriginalImage"];
    self.myImageView.image = img;
}

Итак, в основном я пытаюсь получить фотографию с камеры iPhone и отобразить ее в UIImageView.Это прекрасно работает, пока класс myViewController отображается в виде автономного представления.Если я помещаю View в UINavigationController, UIImageView не будет отображать изображение после съемки камеры.Но если я выберу изображение из библиотеки, все снова в порядке.

Так почему же UIImageView не отображает изображение, снятое камерой, внутри UINavigationController?

Ответы [ 2 ]

0 голосов
/ 17 февраля 2010

Мне кажется, вы отказываетесь от неправильного view-контроллера. Не должны:

[thePicker dismissModalViewControllerAnimated:YES];

следующим образом:

[self dismissModalViewControllerAnimated:YES];
0 голосов
/ 17 февраля 2010

Попробуйте переключить следующие строки:

[thePicker dismissModalViewControllerAnimated:YES];
UIImage *img = [imageInfo objectForKey:@"UIImagePickerControllerOriginalImage"];
self.myImageView.image = img;

на следующее:

UIImage *img = [imageInfo objectForKey:@"UIImagePickerControllerOriginalImage"];
self.myImageView.image = img;
[thePicker dismissModalViewControllerAnimated:YES];

Возможно, изображение освобождается из-за отклонения вида, прежде чем вы сохраните его с помощью

self.myImageView.image = img;
...