gpt4 book ai didi

iphone - UIImagePickerController 不会停止定位服务

转载 作者:行者123 更新时间:2023-11-28 17:45:38 26 4
gpt4 key购买 nike

基本上我想要完成的是一个增强现实应用程序。我有 map View 和增强现实 View 。
当用户只查看 map View 然后返回到 UINavigation 堆栈中的上一页时,所有位置服务都会停止并且箭头工具栏通知会消失。当用户离开 map View 并且 UIImagePickerController 以模态方式呈现时,即使在用户按下负责停止所有位置服务并弹出当前 View 的按钮后,位置服务通知仍将保留。我知道不是我的 CLLocationManager 导致了问题,因为正如我所说,当 UIImagePicker 从未放置在屏幕上时,不会发生错误。我的想法是,即使我在弹出当前 View 之前关闭模态视图,用于地理定位或相机使用它们的任何位置服务也不会停止。
对于我的生活,我无法弄清楚为什么他们不停止,如果有人可能知道为什么这将是一个巨大的帮助。

这是我现在在为准备从 UINavigation 堆栈中弹出 View 而调用的方法中的代码

[_locationManager setDelegate:nil];
[_locationManager stopUpdatingLocation];
[_locationManager stopUpdatingHeading];
[[UIAccelerometer sharedAccelerometer] setDelegate:nil];
if (_imagePickerOn){
[self dismissModalViewControllerAnimated:YES];
_imagePickerOn = FALSE;
}

--编辑--这是我介绍图像选择器的方法,非常基本:

- (IBAction) cameraButtonPressed{
_imagePickerOn = TRUE;
[self presentModalViewController:_imagePicker animated:NO];
}

最佳答案

我假设您正在其他地方提前分配图像选择器 Controller 。这可能就是问题所在——当它的 View 离开屏幕时(当你关闭它时),它没有被释放,所以它仍然在内存中并且可能仍在使用它的位置管理器。这是一个错误,但不是您的错误,因此您无法使用当前设置对其做很多事情。

一种更常见的模式是仅在您要呈现它们时分配 UIImagePickerController 之类的东西,并在调用 -presentModalViewController:animated: 后立即释放它们。它可以使您的 UI 响应速度稍慢,尤其是在分配复杂的 View Controller 时(我不确定图像选择器 Controller 是否符合要求),但您可以获得减少内存使用量的好处,并且希望不再使用位置在您不需要时提供服务。

关于iphone - UIImagePickerController 不会停止定位服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6169338/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com