0

マップビューに問題があります。ビューに移動すると機能しますが、別のビューに移動してマップビューに戻ると機能しなくなります。NSLog() すると正しい緯度と経度が得られるので、それは問題ではありません。

コード:

- (void) viewDidAppear:(BOOL)animated {
if(IS_IPHONE5) {
    mapView = [[MKMapView alloc] initWithFrame:CGRectMake(0,300,320,300)];
} else {
    mapView = [[MKMapView alloc] initWithFrame:CGRectMake(0,250,320,250)];
}

mapView.mapType = MKMapTypeStandard;

CLLocationCoordinate2D coord = {.latitude =  [testLatitude floatValue], .longitude =  [testLongitude floatValue]};
MKCoordinateSpan span = {.latitudeDelta =  0.05, .longitudeDelta =  0.05};
MKCoordinateRegion region = {coord, span};

[mapView setRegion:region];
[self.view addSubview:mapView];

CLLocationCoordinate2D annotationCoord;
annotationCoord.latitude = [testLatitude floatValue];
annotationCoord.longitude = [testLongitude floatValue];

MKPointAnnotation *annotationPoint = [[MKPointAnnotation alloc] init];
annotationPoint.coordinate = annotationCoord;
annotationPoint.title = stringTitle;
[mapView addAnnotation:annotationPoint];

}
4

5 に答える 5

0

viewdidAppear で mapview を割り当てているのはなぜですか? viewdidDisAppearで削除されていない場合、画面にマップビューを複数回追加します

于 2013-11-15T08:40:48.250 に答える
0

ビューに次のコードを追加します。

-(void)viewDidDisappear:(BOOL)animated {
  if(mapView)
    {
     [mapView removeFromSuperview];
    }
 }

}

また、すべてのサブビューを削除するには:

-(void)viewWillAppear:(BOOL)animated {
    for (UIView *view in self.subviews) {
        [view removeFromSuperview];
     }
}
于 2013-11-15T09:25:46.580 に答える
0

あなたが示したことに基づいて、マップ ビューを追加し続けています (VC が表示されるたびに新しいビューが表示されます)。削除するのを忘れているようです!?

于 2013-11-15T08:33:08.960 に答える