マップビューを表示するアプリを作成しています。ここで、MKMapType を標準からハイブリッドに変更するオプションをユーザーに提供したいと考えています。
そのために、マップ タイプを設定するスイッチを含む別のビュー コントローラーへのセグエを作成しました。トランジションは、部分的なカールを使用したモーダルです。スイッチの値にアクセスするために、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 に設定すると動作します...