탭이있는 tabbar 컨트롤러를로드하는 앱이 있습니다. 그 중 하나는지도보기입니다. 그것은이 코드가 사용자의 위치를 확대하도록 설정된다두 번째보기가 나타날 때까지 MapView 확대/축소 위치를 고정하는 방법
- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
_mapView.showsUserLocation = YES;
CLLocationCoordinate2D zoomLocation;
//IF no city was selected, use userLocation as center
if (!self.cityWasSelected) {
zoomLocation.latitude = self.userLocation.coordinate.latitude;
zoomLocation.longitude = self.userLocation.coordinate.longitude;
CLLocationDistance visibleDistance = 5000; // 5 kilometers
MKCoordinateRegion adjustedRegion = MKCoordinateRegionMakeWithDistance(zoomLocation, visibleDistance, visibleDistance);
[_mapView setRegion:adjustedRegion animated:YES];
} else { //if a city was selected, use that city's value...this is actually the same right now, since self.userLocation is set appropriately elsewhere.
//Set location from selection - forward geocode
zoomLocation.latitude = self.userLocation.coordinate.latitude;
zoomLocation.longitude = self.userLocation.coordinate.longitude;
CLLocationDistance visibleDistance = 5000; // 5 kilometers
MKCoordinateRegion adjustedRegion = MKCoordinateRegionMakeWithDistance(zoomLocation, visibleDistance, visibleDistance);
[_mapView setRegion:adjustedRegion animated:YES];
}
}
초기 탭은 사용자 선호도에 대한 tableviewcontroller이며, 두 번째 탭은지도보기이고 제가있는 TableView이다. 처음지도보기를 탭하면지도 전체가 표시됩니다. 초기 탭 또는 목록 탭으로 다시 돌아가서지도보기로 돌아 가면지도가 현재 위치 주변에 제대로 배치됩니다.
왜 이런 일이 발생합니까?