didUpdateHeading не вызывается, когда представление используется в качестве наложения камеры

У меня проблема со следующим кодом:

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

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

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

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 успешно загружен, но анимация не выполняется, так как он вызывает смещение didupdateheading не вызывается.

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

1 ответ

Вы сохраняете объект LayoutViewController? Или вы устанавливаете его только как cameraOverlayView?

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

Другие вопросы по тегам