0

지도 유형을 하이브리드 또는 위성 또는 표준으로 변경하는 Google지도의 기능을 다시 만들려고합니다. 부분 컬 전환으로 표시되는 뷰를 설정했습니다. 이 뷰 내에는 UISegmentedControl이 있습니다. 값이 변경되면 다음 코드가 실행됩니다.부분 컬에서 mapView mapType을 어떻게 변경할 수 있습니까?

- (IBAction)setMap:(id)sender { 
switch (((UISegmentedControl *) sender).selectedSegmentIndex) { 
    case 0: 
     [self curlViewControllerDidFinish:nil]; 
     [mapview setMapType:MKMapTypeStandard]; 
     break; 

    case 1: 
     [self curlViewControllerDidFinish:nil]; 
     [mapview setMapType:MKMapTypeSatellite]; 
     break; 

    case 2: 
     [self curlViewControllerDidFinish:nil]; 
     [mapview setMapType:MKMapTypeHybrid]; 
     break; 

    } 
} 

curl 전환은 완료되지만 mapType은 변경되지 않습니다. 나는 [mapview setmapType...[self curlViewControllerDidFinish... 위에 놓으려고 노력했다.

참고 : [mapview setMapType:MKMapTypeHybrid];은 컬 전이 외부에서 실행될 경우 1 줄의 코드로 mapType을 변경합니다.

해결 방법에 대한 의견이 있으십니까?

답변

2

iOS Maps.app은 모달보기가 새 옵션을 선택했다는 사실을지도보기에 알리기 위해 델리게이트를 사용합니다. 다음과 같은 것 :

- (IBAction)setMap:(id)sender { 
switch (((UISegmentedControl *) sender).selectedSegmentIndex) { 
    case 0: 
     [self curlViewControllerDidFinish:nil]; 
     [self.delegate setMapType:MKMapTypeStandard]; 
     [self dismissModalViewControllerAnimated:YES]; 
     break; 

    case 1: 
     [self curlViewControllerDidFinish:nil]; 
     [self.delegate setMapType:MKMapTypeSatellite]; 
     [self dismissModalViewControllerAnimated:YES]; 
     break; 

    case 2: 
     [self curlViewControllerDidFinish:nil]; 
     [self.delegate setMapType:MKMapTypeHybrid]; 
     [self dismissModalViewControllerAnimated:YES]; 
     break; 

    } 
} 
+0

여전히 문제가있는 경우, 일단 작동 시키면 어떻게했는지 알려 드리겠습니다. –