2011-10-17 4 views
0

3 개의보기가있는 앱이 있습니다. 보기를 선택하려면 탭 막대 컨트롤러를 사용하고 있습니다.UI 탭 막대 mapView 핵심 데이터 업데이트 후 새로 고침

현재지도에 모든 주석이 포함 된 가장 가까운 위치로 확대되도록 설정되어 있습니다. 그러나보기 1에서 코어 데이터를 업데이트 한 다음 탭 2를 선택하지만 주석 핀은 동일하게 유지됩니다. 응용 프로그램을 종료해도 핀 색상이 동일하게 나타납니다 (데이터 상태에 따라 색상이 바뀝니다). 내가 업데이트 할 수있는 유일한 방법은 멀리 확대 한 다음 다시 축소하는 것입니다.

코드 나는 시도했다 :

[mapView release];

[mapView setNeedsDisplay];

[mapView removeAnnotation:tempAnnotation];

나는 심지어 '정상'줌 레벨에서 다시 빠른 이동을 좌표 번까지 확대 2 번, 설정 맵을 설정

[mapView setCenterCoordinate:center];

CLLocationCoordinate2D center = [mapView centerCoordinate];

.

didFinishLoading 등에서보기를 새로 고치는 방법이 있습니까?

내가이 코드 스 니펫 중 하나를 잘못된 위치에 삽입 할 수 있습니까?

또한

가 탭 표시 줄이 페이지를 캐시 그것은 단지이다 전달 된 데이터 등을 발표하고있다? 지도 새로 고침을 강요하는 방법이 있습니까?

감사합니다.

로버트

나뿐만 아니라이 내 자신의 질문에 대답하려고 생각

답변

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 관점에서 보면 아무런 변화가 없습니다.

환호! 로버트