2014-09-25 4 views
0

У меня есть код в UIViewController, который запускает обновление местоположения: [locationManager startUpdatingLocation];Objective-C - Core Location - IOS 7,1

работает отлично. Но мне нужно каждый раз, когда вы выходите из этого экрана, он перестает обновлять местоположение и запускается снова, когда я вернусь.

Первый раз для уточнения. В других случаях это не останавливается.

Код для выхода из поля зрения:

[locationManager stopUpdatingLocation]; 
locationManager.delegate = nil; 

Ihave пытались также: (без успеха тоже)

[locationManager stopMonitoringSignificantLocationChanges]; 
[locationManager stopUpdatingHeading]; 
[locationManager stopUpdatingLocation]; 

locationManager.delegate = nil; 
locationManager = nil; 

Всегда обновлять. Но со второго раза не останавливай обновление.

didUpdateLocation код:

-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations{ [self addingMarkerUser]; }

+0

Где этот код называется * from *? – Droppy

+0

От 'viewDidDisappear' – Gian

+0

показать ur didupdatelocation code –

ответ

-1

Вы должны поместить свой код в viewDidAppear и я полагаю, в вашем [self addingMarkerUser] вы используете что-то вроде этого без остановки (если нет, пожалуйста, укажите код):

CLGeocoder *geocoder = [[CLGeocoder alloc] init] ; 
    [geocoder reverseGeocodeLocation:_currentLocation completionHandler:^(NSArray *placemarks, NSError *error) { 

if (!(error)) { 
       //do something with the data. 
       //then stop the update. 
      [locationManager stopUpdatingLocation]; 

     } 
    }]; 

Если вы делаете так, каждый раз, когда появляется ваше представление, местоположение запустит обновление, а затем остановится после получения данных.

+0

Он спрашивает обратное – JustSid

+0

Я не использую геокодирование. Просто поместите маркер текущего местоположения устройства на карту. – Gian