如何"关闭"没有位置管理器的地图视图消失时的位置服务?

时间:2015-10-27 11:15:53

标签: ios uiviewcontroller mkmapview cllocationmanager location-services

我在视图控制器中有MKMapView我打电话:

[self.mapView setUserTrackingMode:MKUserTrackingModeFollow animated:YES];

当我导航到另一个视图控制器并且地图视图的控制器消失时,我仍然运行位置服务(我在状态栏中看到箭头)。一旦我没有看到地图,我想把它关掉,但我不知道如何在没有CLLocationManager的情况下做到这一点...

由于

2 个答案:

答案 0 :(得分:0)

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

if ([CLLocationManager significantLocationChangeMonitoringAvailable])
    {
        if (OUTPUT_LOGS) NSLog(@"Stopped monitoring for significant changes");
        [[self locationManager] stopMonitoringSignificantLocationChanges];
    }

    [[self locationManager] startUpdatingLocation];

}


-(void)viewWillDisappear:(BOOL)animated {

    [super viewWillDisappear:animated];

    if ([CLLocationManager significantLocationChangeMonitoringAvailable])
            {
                [self.locationManager startMonitoringSignificantLocationChanges];


            }

 [[self locationManager] stopUpdatingLocation];
}

答案 1 :(得分:0)

这似乎有效:

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

   self.mapView.showsUserLocation = NO;
   [self.mapView setUserTrackingMode:MKUserTrackingModeNone animated:YES];
}