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(@"设置地图:%@,%@",Lats,lons); 我可以看到这个方法中的 lat 和 lons 值是正确的。但是,地图不会更改为该位置。

我应该怎么做才能让它显示新的位置?

谢谢你的帮助。

4

1 回答 1

1

我觉得你应该在做任何进一步的事情之前更好地学习 (Objective-)C 内存管理和 Cocoa 约定。+ alloc返回视图控制器类的一个新实例,而不是当前显示的那个。

并以大写字母开头您的班级名称。并且您的方法名称使用小写字母。

于 2013-06-23T04:41:31.183 回答