Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/121.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 从地图视图注释到局部视图控制器_Ios_Uiviewcontroller_Segue_Mkannotation - Fatal编程技术网

Ios 从地图视图注释到局部视图控制器

Ios 从地图视图注释到局部视图控制器,ios,uiviewcontroller,segue,mkannotation,Ios,Uiviewcontroller,Segue,Mkannotation,我已经成功地使用GooglePlacesAPI在我的地图视图上显示注释。现在,我希望将此信息(名称和地址)发送到详细视图控制器 现在我只有一个空白的细节视图控制器,没有任何信息 以下是我调用详图视图控制器的方法: -(void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control { id <M

我已经成功地使用GooglePlacesAPI在我的地图视图上显示注释。现在,我希望将此信息(名称和地址)发送到详细视图控制器

现在我只有一个空白的细节视图控制器,没有任何信息

以下是我调用详图视图控制器的方法:

-(void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view   calloutAccessoryControlTapped:(UIControl *)control {
    id <MKAnnotation> annotation = [view annotation];
    if ([annotation isKindOfClass:[MapPoint class]])
    {
        NSLog(@"success");
    }
    [self performSegueWithIdentifier:@"ABC" sender:self];
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"ABC"])
{
    MKAnnotationView *annotationView = sender;
    [segue.destinationViewController setAnnotation:annotationView.annotation];
}
}

将显示局部视图控制器,但其中没有任何信息!我知道我一定错过了一些愚蠢的东西,但我不知道是什么

看。调用performsguewithidentifier时,将视图作为发送方传递(非self)。SIGABRT可能是因为您将
\u mapView.annotations
(这是一个NSArray)视为一个注释。Thankyou@Anna,我用以下内容更新了我的prepare for segue:-(void)prepareForSegue:(UIStoryboardSegue*)segue发送方:(id)发送方{if([segue.identifier IsequalString:@“ABC]”){MKAnnotationView*annotationView=sender;[segue.destinationViewController setAnnotation:annotationView.annotation];DetailViewController*dvc=segue.destinationViewController;dvc.name=annotation.name;}}但是“annotation.name”声明一个错误:使用未声明的标识符,我知道这必须很简单,但我应该在哪里声明标识符?谢谢!听起来好像您混淆或组合了链接答案中的故事板和xib版本。只使用答案的故事板版本。您不应该在prepareForS中创建DetailViewController的实例我尝试混合使用这两种方法,因为故事板版本不返回任何数据(即使细节视图控制器正确显示,在中也没有数据…)现在我不想浪费你的时间/打扰你,也许你可以帮我提供相关的文献/教程让我跟随?无论如何,再次感谢你之前的回答!我没有任何具体的链接,但我建议你从苹果文档及其指南、示例应用程序和视频开始。你也可以尝试用你的最新的变化和问题。另外,我不认为您的问题与MapKit有关,而是一个一般的故事板/segue/数据传递问题。