iPhone:addAnnotation在从其他视图调用时不工作

iPhone:addAnnotation在从其他视图调用时不工作,iphone,mapkit,mkmapview,mkannotation,Iphone,Mapkit,Mkmapview,Mkannotation,我有两个视图,第一个视图上有一个名为ridesMap的MKMapView。第二个视图只是一个包含UITableView的视图。在第二个视图中单击“保存”按钮时,它会从第一个视图调用一个方法: // Get my first views class MyRidesMapViewController *rideMapView = [[MyRidesMapViewController alloc] init]; // Call the method from my first views class

我有两个视图,第一个视图上有一个名为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方法。所以,我不明白为什么它从不掉针?可能是因为我从另一个视图调用此方法吗?这有什么关系?

您正在创建MyRidesMapViewController的第二个实例。您应该将注释添加到原始实例中。您需要提供一些将该实例传递给第二个视图的方法。有很多可能的方法可以做到这一点;最佳选择取决于应用程序的结构(我们不知道)。我的应用程序使用选项卡栏控制器。“我的地图视图”中的一个选项卡。在该选项卡上,我有一个显示模式视图的按钮,它在我的mapview视图上打开。从第二个视图中,我需要调用我的方法,该方法将放置并注释到堆栈底部的mapview上。我建议您扫描UITabViewController的ViewController属性以找到地图视图控制器,并将其选中:self.tabBarController.selectedViewController=mapViewController;