我有两个视图,第一个视图上有一个名为ridesMap 的MKMapView。第二个视图只是一个包含 UITableView 的视图。当您单击第二个视图中的保存按钮时,它会从第一个视图调用一个方法:
// Get my first views class
MyRidesMapViewController *rideMapView = [[MyRidesMapViewController alloc] init];
// Call the method from my first views class that removes an annotation
[rideMapView addAnno:newRidePlacemark.coordinate withTitle:rideTitle.text withSubTitle:address];
这会正确调用 addAnno 方法,如下所示:
- (void)addAnno:(CLLocationCoordinate2D)anno withTitle:(NSString *)annoTitle withSubTitle:(NSString *)subTitle {
Annotation *ano = [[[Annotation alloc] init] autorelease];
ano.coordinate = anno;
ano.title = annoTitle;
ano.subtitle = subTitle;
if ([ano conformsToProtocol:@protocol(MKAnnotation)]) {
NSLog(@"YES IT DOES!!!");
}
[ridesMap addAnnotation:ano];
}//end addAnno
此方法创建一个符合 MKAnnotation 的注释,并假设使用 addAnnotation 方法将该注释添加到地图中。但是,注释永远不会被添加。
未添加注释时,我永远不会收到任何错误。但是在调用该方法时它永远不会出现。
为什么会这样?看来我做的一切都正确,并且我将正确的 MKAnnotation 传递给 addAnnotation 方法。所以,我不明白为什么它从不掉针?可能是因为我从另一个视图调用此方法吗?这有什么关系?