0

Ich versuche, die Funktion von Google Maps neu zu erstellen, die den Kartentyp auf Hybrid oder Satellit oder Standard ändert. Ich habe eine Ansicht eingerichtet, die in einem partiellen Curl-Übergang angezeigt wird. In dieser Ansicht befindet sich ein UISegmentedControl. Wenn es Wert geändert wird, wird der folgende Code ausgeführt:Wie kann ich mapView mapType innerhalb einer Teilkrümmung ändern?

- (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; 

    } 
} 

Der Curl Übergang Finish tut, aber die mapType nicht ändert. Ich habe versucht, die [mapview setmapType... über die [self curlViewControllerDidFinish... setzen.

Hinweis: [mapview setMapType:MKMapTypeHybrid]; ändert den MapType mit 1 Codezeile, wenn er außerhalb des Curl-Übergangs ausgeführt wird.

Irgendwelche Ideen, wie Sie das beheben können?

Antwort

2

Die iOS Maps.app verwendet höchstwahrscheinlich einen Delegaten, um die Kartenansicht zu informieren, dass die modale Ansicht eine neue Option ausgewählt hat. So etwas wie das:

- (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

Immer noch Probleme damit, ich werde Sie wissen lassen, wie ich es getan habe, sobald ich es funktioniert habe. –