从另一个视图中的MKMapView中删除注释

时间:2010-05-18 05:45:03

标签: iphone delegates mkmapview uiapplicationdelegate

我有两个观点。第一个是MKMapView,带有一些注释。单击UIButton会在堆栈上推送第二个视图。这有一个UITableView,其中包含与地图注释相对应的注释列表。因此,当您单击删除按钮时,如何调用另一个视图中的MKMapView,以便我可以删除注释。我的app MKMapView在我的app委托中声明,以及我当前的课程。我试图使用以下内容,但它不起作用:

RideAppDelegate *appDelegate = (RideAppDelegate *)[[UIApplication sharedApplication] delegate];
Annotation *ano;
CLLocationCoordinate2D anoPoint;
anoPoint.latitude = [[eventToDelete valueForKey:@"latitude"] doubleValue];
anoPoint.longitude = [[eventToDelete valueForKey:@"longitude"] doubleValue];
ano = [[[Annotation alloc] init] autorelease];
ano.coordinate = anoPoint;
[appDelegate.ridesMap removeAnnotation: ano];
[appDelegate release];

我必须尝试错误地访问其他视图的MKMapView吗?

1 个答案:

答案 0 :(得分:1)

  • ridesMap必须是MKMapView,它必须是appDelegate的ivar。这是属于(保留)的财产吗?是创建并分配了self.ridesMap = [[MKMapView alloc] init]还是类似的?
  • 您确定Annotation遵循MKAnnotation协议吗?

(为什么要发布appDelegate?你不拥有或保留它。)