Objective c 如何从局部卷曲中更改mapView mapType?

Objective c 如何从局部卷曲中更改mapView mapType?,objective-c,xcode,android-mapview,uisegmentedcontrol,page-curl,Objective C,Xcode,Android Mapview,Uisegmentedcontrol,Page Curl,我正在尝试重新创建谷歌地图的功能,将地图类型更改为混合、卫星或标准。我已经设置了一个视图,它以部分卷曲过渡显示。在此视图中,是一个UISegmentedControl。当其值更改时,将执行以下代码: - (IBAction)setMap:(id)sender { switch (((UISegmentedControl *) sender).selectedSegmentIndex) { case 0: [self curlViewControllerDidFinish:

我正在尝试重新创建谷歌地图的功能,将地图类型更改为混合、卫星或标准。我已经设置了一个视图,它以部分卷曲过渡显示。在此视图中,是一个UISegmentedControl。当其值更改时,将执行以下代码:

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

    }
}
卷曲过渡确实完成,但贴图类型不变。我已尝试将
[mapview setmapType…
放在
[self-CurlViewControllerdFinish…
上方

注意:
[mapview setMapType:MKMapTypeHybrid];
如果在curl转换之外执行,则会使用一行代码更改mapType


有关如何修复此问题的任何想法?

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;

    }
}

它仍然有问题,我会让你知道我是如何做的,一旦我得到它的工作。