我正在尝试重新创建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...
之上。
注意:如果在curl转换之外执行,[mapview setMapType:MKMapTypeHybrid];
会使用1行代码更改mapType。
有关如何解决此问题的任何想法?
答案 0 :(得分: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;
}
}