2014-12-29 1 views
0

я есть проблема со следующим кодом:didUpdateHeading не вызывается, когда вид используется как cameraoverlay

Я реализовал простую ViewController имени LayoutViewController, который показывает картину, которая автоматически перемещается в соответствии с магнитной заголовок. код состоит в:

lm = [[CLLocationManager alloc] init]; 
lm.delegate = self; 
lm.desiredAccuracy = kCLLocationAccuracyBest; 
lm.distanceFilter = kCLDistanceFilterNone; 
[lm startUpdatingLocation]; 
lm.headingFilter = kCLHeadingFilterNone; 
[lm startUpdatingHeading]; 

ввиду сделал нагрузки, то я реализована didUpdateHeading, где выполняются анимация. Все работает FINE. В другом виде контроллер i поместил кнопку и в IBAction i put:

LayoutViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"LayoutViewController"]; 

и все работало.

Проблема в том, что если я пытаюсь использовать LayoutViewController в качестве наложения наложения камеры, анимация не работает.

я внедрено:

UIImagePickerController *picker = [[UIImagePickerController alloc] init]; 


    picker.delegate = self; 
    picker.allowsEditing = YES; 
    picker.sourceType = UIImagePickerControllerSourceTypeCamera; 

    picker.showsCameraControls = YES; 
    picker.modalPresentationStyle = UIModalPresentationFullScreen; 


    LayoutViewController* overlayView = [self.storyboard instantiateViewControllerWithIdentifier:@"LayoutViewController"]; 
    picker.cameraOverlayView=overlayView.view; 

([picker setCameraOverlayView:overlayView.view] вместо picker.cameraOverlayView=overlayView.view дает один и тот же вопрос)

При выполнении этого, он открывает камеру и я могу увидеть картину я имею в LayoutViewController, так LayoutViewController экземпляр успешно загружен, но анимация не выполняется, потому что она не вызывается.

Пожалуйста, помогите!

ответ

0

Вы сохраняете объект «LayoutViewController»? Или вы только установили его в качестве камерыOverlayView?

Если вы не сохранили его, CLLocationManager также будет освобожден.

+0

Ну, я не сохранил его, я просто пишу: LayoutViewController * overlayView = [self.storyboard instantiateViewControllerWithIdentifier: @ "LayoutViewController"]; picker.cameraOverlayView = overlayView.view; Не могли бы вы рассказать мне, как сохранить его должным образом? Спасибо! – Andrea

+0

Вы можете, например, создать сильное свойство, чтобы сохранить его: @property (сильный, неатомный) LayoutViewController * myRetainedController – Jakub