ObjCについての理解が不足しているという小さな問題があります。
ルートメニューと別のビュー(地図)に接続するボタンを備えた小さなアプリを作成しました。私の問題は、地図が読み込まれるときに地図のデフォルトの場所を設定することです。MapViewController.m内のコードに、次の関数を含めました。
- (void)viewWillAppear:(BOOL)animated {
CLLocationCoordinate2D zoomLocation;
zoomLocation.longitude= desired_longitude;
zoomLocation.latitude = desired_latitude;
MKCoordinateRegion viewRegion = MKCoordinateRegionMakeWithDistance(zoomLocation, 4*METERS_PER_MILE, 4*METERS_PER_MILE);
[self.mapOutlet setRegion:viewRegion animated:YES];}
さて、最初にアプリを実行してルートメニューの地図ボタンを押すと、地図は大西洋のどこかに中央に配置されます。しかし、ルートメニューに戻ってマップボタンをもう一度押すと、マップは目的の場所の中央に配置されます。このコードをviewDidLoadメソッド内に入れてみたところ、同じ結果になりました。
誰かがこれを解決する方法、そしてもっと重要なことに、これがどのように機能するかを私に説明できますか?新しいビューが表示されたときに呼び出されるメソッドはどれですか?たとえば、実装ファイルに上記のメソッドを含めるだけで、このメソッドを呼び出さずに実行されるのは不思議に思えます(現時点では、マップビューへの2回目のナビゲーションの後でのみですが)...