gpt4 book ai didi

iphone - CoreLocation GPS 状态栏指示器不消失

转载 作者:行者123 更新时间:2023-11-29 11:18:33 25 4
gpt4 key购买 nike

我完全被 CoreLocation 的问题难倒了。

我已经检查了一些其他问题并在 Google 上进行了检查,但似乎找不到任何人遇到我遇到的这个特定问题。

我在我的应用程序中使用 CoreLocation,当我调用 [manager startUpdatingLocation] 时,状态栏上的蓝色小箭头出现,服务开始,一切正常。

在应用程序中我有一个 UITabBarController,现在只有第一个 Tab 使用了 CoreLocation 所以在我的第一个 Tab ViewController 的 viewDidDisappear 方法中,我调用了 [manager stopUpdatingLocation]

现在这里出了问题,如果我手动点击不同的选项卡,那么当我在选项卡之间来回移动时,蓝色小箭头会消失并重新出现,正如我所期望的那样。

但是,在第一个选项卡上做某事后,它会通过[self.tabBarController setSelectedIndex:1]自动切换到另一个选项卡,此时状态栏上的蓝色箭头不会消失,即使我不断地在选项卡中来回移动,只要应用程序处于事件状态,该箭头现在基本上会停留在那里(如果应用程序进入后台,它确实会消失,但会重新出现在任何选项卡并像以前一样停留在那里,如果它再次激活)。

现在我想,也许以编程方式更改选项卡不会调用 viewDidDisappear,所以我在那里放置了一个断点,但它确实被调用了。

然后我想...好吧,如果我在调用 [self.tabBarController setSelectedIndex:1] 之前调用 [manager stopUpdatingLocation] 可能会解决问题,但这也没有做任何事情。

现在我迷失了想法,非常感谢任何帮助。

P.S:我已经测试过 CoreLocation 委托(delegate)方法是否仍在被调用,并且它们似乎不再被调用,除非初始选项卡打开,所以看起来 CoreLocation 似乎已经停止。然而,从用户的角度来看,情况似乎并非如此。

编辑: 似乎这可能是某些第三方库的问题,所以不是真正可以回答的问题

最佳答案

在您释放 CLLocationManager 之前,指示器不会消失。

编辑:我最初的回答是不正确的,当调用 stopUpdatingLocation 时指示器确实应该消失。

编辑 2: 我创建了一个基本的测试应用程序,在我的案例中调用 viewDidDisappear 中的 stopUpdatingLocation 确实会导致指示器消失。第一个 View Controller 的代码如下:

- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:YES];

if (locationManager == nil) {
self.locationManager = [[[CLLocationManager alloc] init] autorelease];
self.locationManager.delegate = self;
}

[self.locationManager startUpdatingLocation];
}

- (void)viewDidLoad {
[super viewDidLoad];

UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
button.frame = CGRectMake(20, 20, 280, 40);
[button setTitle:@"Go to Tab 2" forState:UIControlStateNormal];
[button addTarget:self action:@selector(buttonTapped) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:button];
}

- (void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
[self.locationManager stopUpdatingLocation];
}

- (void)buttonTapped {
[self.tabBarController setSelectedIndex:1];
}

关于iphone - CoreLocation GPS 状态栏指示器不消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8304275/

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