2012-05-03 5 views
0

Доброе утро.UIImagePickerController белый экран?

У меня проблемы с UIImagePickerController, который не показывает ничего, кроме белого. У меня есть 320x320 UIImageView в моем главном файле заголовка:

IBOutlet UIImageView *_cameraView; 

Наряду с:

@property (nonatomic, retain) UIImagePickerController *_cameraPicker; 
@property (nonatomic, retain) UIImage *_noCam; 

_noCam изображение, которое помещается в окне просмотра, если пользователь не имеет камеры. Это прекрасно работает.

Я пытаюсь показать (без стандартного графического интерфейса камеры, но который может подождать) камеру поверх этого квадратного вида. В своем главном классе у меня есть:

- (void)viewDidAppear:(BOOL)animated { 
[super viewDidAppear:animated]; 
NSLog(@"viewDidAppear did appear too"); 
//camera view etc 
if (![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { 
    //code here to not allow picture taking, probably put up something saying you don'thave a camera on your device 
    NSLog(@"no cam available"); 
    _noCam = [UIImage imageNamed:@"noCam.png"]; 
    [_cameraView setImage:_noCam]; 
} else { 
    //take the shot 
    _cameraPicker = [[UIImagePickerController alloc] init]; 
    _cameraPicker.delegate = _cameraView; 
    _cameraPicker.sourceType = UIImagePickerControllerSourceTypeCamera; 
    NSLog(@"cam is available"); 
} 

}

Я предполагаю, что у меня есть проблемы с установкой делегата. _self дает мне ошибку типа:

«от несовместимого типа„ViewController * Const _strong“

Я использую NSLogs проверить методы работают, он говорит мне, что метод viewDidLoad и viewDidAppear назывались и что была обнаружена камера. Но тогда я просто получаю белый вид.

Любая помощь была бы чрезвычайно оценена.

Спасибо.

+0

Почему вы устанавливаете делегата выбора камеры на просмотр камеры? Работает ли это для вас ? делегат должен соответствовать протоколам. UINavigationControllerDelegate и UIImagePickerControllerDelegate – giorashc

+0

Просто попробовал случайные вещи в безумной попытке заставить его работать. – mrEmpty

ответ

0

Вам нужно, чтобы отобразить палитру каким-то образом, вы можете использовать графический интерфейс по умолчанию:

[self presentModalViewController:_cameraPicker animated:YES]; 

Или проверить cameraOverlayView из UIImagePickerController.

+0

Здравствуйте. Спасибо за намек, исследование этого привело меня к структуре AVFoundation, теперь у меня это работает. – mrEmpty

Смежные вопросы