0

我正在尝试重新创建将地图类型更改为混合、卫星或标准的谷歌地图功能。我已经设置了一个显示在部分卷曲过渡中的视图。在这个视图中,是一个 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;

    }
}

卷曲过渡确实完成了,但 mapType 没有改变。我试过把[mapview setmapType...上面的[self curlViewControllerDidFinish....

注意:[mapview setMapType:MKMapTypeHybrid];如果在 curl 过渡之外执行,则使用 1 行代码更改 mapType。

有想法该怎么解决这个吗?

4

1 回答 1

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;

    }
}
于 2012-03-27T01:46:53.263 回答