我正在编写一个显示地图视图的应用程序。现在我想为用户提供将 MKMapType 从标准更改为混合的选项。
为了做到这一点,我创建了一个到另一个视图控制器的 segue,其中包含一个用于设置 Map Type 的开关。过渡是模态的,使用部分卷曲。为了访问开关的值,我在 AppDelegate 中引入了一个称为 fotoMode 的 BOOL。如果此变量设置为 YES(并且如果开关设置为 ON),那么我想重新绘制地图。
- (IBAction) FotoModusSwitchChanged:(UISwitch *)sender
{
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
if(sender.isOn)
{
appDelegate.fotoMode=YES;
}
else
{
appDelegate.fotoMode=NO;
}
}
我在地图视图的视图控制器的 VieWillAppear、ViewDidAppear、ViewDidLoad、ViewWillLayoutSubviews 中包含了以下代码行,但它不起作用:
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
if (appDelegate.fotoMode) {
[self.MapOutlet setMapType:MKMapTypeHybrid];
}
else
{
[self.MapOutlet setMapType:MKMapTypeStandard];
}
知道我做错了什么吗?谢谢。
PS:手动将 MKMapType 设置为 Hybrid 或 Standard 工作...