当视图用作相机覆盖时,didUpdateHeading未被调用

时间:2014-12-29 14:39:22

标签: ios objective-c xcode cameraoverlayview

我遇到以下代码的问题:

我实现了一个名为 LayoutViewController 的简单 ViewController ,它显示了根据磁航向自动移动的图片。代码包括:

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 实例已成功加载,但没有执行动画,因为它没有调用未更新的接头。< / p>

请帮助我!

1 个答案:

答案 0 :(得分:0)

你是否保留了&#39; LayoutViewController&#39;宾语?或者你只将它的视图设置为cameraOverlayView?

如果你不保留它,CLLocationManager也将被解除分配。