0

これには数日かかります..私はそれを機能させることができませんでした. 以下のようにマップ上にピンを配置するメソッドを作成します。

- (void) SetMaps:(NSString *)Lats :(NSString *)lons;
{
    if([upLo isEqualToString:@"Y"])
    {
        NSLog(@"setting maps:%@,%@",Lats,lons);
        [mapView setMapType:MKMapTypeStandard];
        [mapView setZoomEnabled:YES];
        [mapView setScrollEnabled:YES];
        [mapView setMapType:MKMapTypeStandard];
        [mapView setZoomEnabled:YES];
        [mapView setScrollEnabled:YES];
        MKCoordinateRegion region = { {0.0, 0.0 }, { 0.0, 0.0 } };
        region.center.latitude = [Lats doubleValue] ;
        region.center.longitude = [lons doubleValue];
        region.span.longitudeDelta = 0.01f;
        region.span.latitudeDelta = 0.01f;
        [mapView setRegion:region animated:YES];
       [mapView setDelegate:self];
        MKPointAnnotation *point = [[MKPointAnnotation alloc] init];
        point.coordinate = region.center;
       [self.mapView addAnnotation:point];

    }
}

このメソッドは、タブ バー コントロール アプリケーションの secondViewController.m で呼び出すとうまく動作します。

でも、appdelegate.m から呼び出したい。だから appdelegate.m に、

secondViewController *Gper=[[secondViewController alloc]init];
[Gper SetMaps:LAT:LON];
[Gper release];

この NSLog(@"setting maps:%@,%@",Lats,lons) から; このメソッドで緯度と経度の値が正しいことがわかります。ただし、マップはこの場所に変更されません。

新しい場所を表示するにはどうすればよいですか?

助けてくれてありがとう。

4

1 に答える 1

1

先に進む前に、(Objective-)C のメモリ管理と Cocoa の規則をもっとよく学ぶべきだと思います。+ alloc現在表示されているものではなく、View Controller クラスの新しいインスタンスを返します。

クラス名は大文字で始めます。そして、小文字のメソッド名。

于 2013-06-23T04:41:31.183 に答える