2011-09-20 6 views
0

두 곳의 경로가 표시됩니다. 내 프로젝트는 탐색 기반 프로젝트입니다. viewWillAppear: 방법에서 위치 관리자를 사용하여 사용자의 현재 위치를 추적합니다. - (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation 메서드에서 사용자의 현재 위치 좌표를 얻습니다.Mapview 새로 고침이 작동하지 않습니다.

지도를 그립니다. 이제 이전보기로 돌아가서지도보기로 돌아 오면 사용자 위치가로드되지 않습니다. 그것은 - (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation 메서드를 호출하지 않습니다.

어떻게 수정할 수 있습니까? 이 수업에 올 때마다지도 경로를 가져와야합니다. 나뿐만 아니라이 내 자신의 질문에 대답하려고 오전 사전

+0

장치 또는 시뮬레이터에서이 문제가 발생합니까? 시뮬레이터가 항상 정기적 인 위치 업데이트를 발행하지는 않습니다. – mjisrawi

+0

은 시뮬레이터에만 있습니다. 그것이 보여주는 현재 위치는 cupertino입니다. 그것도 케이지만 두 번째로 "Map"버튼을 클릭하면 위치를 다시 업로드하지 않습니다. – cancerian

답변

0

에서

감사 : 나는 꽤 나는 등의 레이어를 다시 그리기, 내가보기를 재설정하는 방법에 대한 게시물을 본

을 (새로운 것이 아니다) 언어에 익숙하지 않으므로 내가해온 것은 해킹이지만 작동합니다. 필요한 경우이 도구를 사용하기를 바랍니다. 그러나 더 나은 솔루션을 찾으십시오.

보기 컨트롤러 :

- (void)viewWillAppear:(BOOL)animated { 

    [super viewWillAppear:animated]; 

    mapView.region = MKCoordinateRegionMakeWithDistance([mapView centerCoordinate],2587600.0, 2587600.0); 

} 

- (void)viewWillDisappear:(BOOL)animated { 

    [super viewWillDisappear:animated]; 

    mapView.region = MKCoordinateRegionMakeWithDistance([mapView centerCoordinate],5.0, 5.0); 
} 

그래서보기 잎, 음 ...보기, 다음지도는 정말까지 확대 할 때보기가보기를 반환하는 경우, 데이터가 다시로드 봐라된다.. 귀하의 마일리지는 다를 수 있지만,이 방법은 내가 필요로하는 것을 위해 완벽하게 작동합니다.

그리고 그것은 전혀 부작용이 아닙니다. 그것은 매끄럽다. UI 관점에서 보면 아무런 변화가 없습니다.

건배! Robert

관련 문제