タブ バー ベースのアプリのナビゲーション コントローラーの一部として MKMapView があります。
最初のビュー コントローラーで UIButton をクリックすると、MKMapView を含む 2 番目のビュー コントローラーにプッシュされます。マップ ビューが読み込まれると、以下を使用してユーザーの位置が拡大されます。
- (void)mapView:(MKMapView *)theMapView didUpdateUserLocation:(MKUserLocation *)userLocation
{
if ( !initialLocation )
{
self.initialLocation = userLocation.location;
MKCoordinateRegion region;
region.center = theMapView.userLocation.coordinate;
region.span = MKCoordinateSpanMake(2.0, 2.0);
region = [theMapView regionThatFits:region];
[theMapView setRegion:region animated:YES];
}
}
MapView の上にあるナビゲーション コントローラーの [戻る] ボタンをクリックしてマップに戻ると、ユーザーの現在の場所がズームインされなくなり、デフォルトで完全にズームアウトされます。
viewDidAppear メソッドで didUpdateUserLocation を何らかの方法で呼び出すことができれば正しく機能すると思いますが、didUpdateUserLocation はデリゲート メソッドであるため、これを実行する方法がわかりません。
それは正しいアプローチですか、それともこれを行うために取るべき別のアプローチはありますか? ありがとう!