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

仍然有它的麻煩,我會讓你知道我是如何做到這一點,一旦我得到它的工作。 – 2012-03-27 03:46:39