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; 

    } 
} 

カール遷移が仕上げを行いますが、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

それでも問題がある場合、私は一度それが動作したらどうしたのか教えてください。 –

関連する問題