繁体   English   中英

如何在部分卷曲中更改mapView mapType?

[英]How can I change mapView mapType from within a partial curl?

我正在尝试重新创建Google地图的功能,将地图类型更改为混合或卫星或标准。 我已经设置了一个以部分卷曲过渡显示的视图。 在此视图中,是一个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...上面[self curlViewControllerDidFinish...

注意: [mapview setMapType:MKMapTypeHybrid]; 如果在curl转换之外执行,则会使用1行代码更改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;

    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM