2012-03-30 60 views
0

我正在为大学项目开发​​iPhone应用程序,而我是iPhone开发新手。我已经浏览了Apple的MapCallouts代码,但实现它似乎不可行。我的地图标注单击时不显示图像

到目前为止,我的代码显示地图,删除注释,显示标题,并显示正确的调出按钮。但这是我遇到问题的地方。

当我按下标注按钮时,它会显示一个空白视图控制器,但它应该显示一个不同的图像,用于每个标注的标注,并且目前还没有发生。

我已经添加下面我的代码:

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view 
     calloutAccessoryControlTapped:(UIControl *)control 
{ 
    //NSUInteger tag = ((UIButton *)control).tag; 

    if (self.detailController==nil) 
    { 
     DetailViewController* detailViewController = [[DetailViewController alloc] init]; 
     [self.navigationController pushViewController:detailViewController animated:YES];    
    } 

    // self.detailController.tag =1; //to identify image required 
    // self.detailController.tag = tag; 

    [self.navigationController pushViewController:detailController animated:YES]; 
} 
+0

显示按下标注按钮时调用的方法。编辑您的问题并将代码添加到它。 – Anna 2012-03-30 17:36:31

+0

detailController是否显示?另外请注意,如果detailController为零,则您的当前代码将被推送两次。这是你的实际代码(你有'detailController'和'detailViewController')?而不是试图使用标签来标识注释,它可以直接在view.annotation中使用。有关示例,请参阅http://stackoverflow.com/questions/8256288/how-to-pass-sender-tag-in-detailview-to-get-default-map-application-for-directio和http:// stackoverflow。 com/questions/7921106/optimize-code-for-mkmapview -not-number-of-annotations – Anna 2012-03-30 18:01:50

+0

当我运行应用程序时,视图在点击附件时被加载,但它显示的图像应该是黑色的黑屏我也得到了以下错误:应用程序试图推动一个无视图控制器的目标 2012-03-30 18:15:41

回答

0

如果使用的是故事板,那么你应该已经有一个视图控制器。我假设你的代码是在你的视图控制器是一个实例的类中。

最简单的(至少编码需要)的方式来呈现图像是:

  1. 将一个视图控制器到故事板
  2. 将一个UIImageView到视图控制器
  3. 选择所需的图像显示在UIImageview的属性编辑器中
  4. 控制 - 从你的主视图控制器中的按钮拖动到包含图像的视图控制器
  5. 这应该有cre一个赛格。选择segue并从样式菜单中选择“模式”

您可以为每个想要的图像执行此操作,但这很麻烦。考虑子类化图像控制器并以编程方式定义要显示的图像。无论如何,如果要使用解除模式视图控制器方法解除图像,您可能需要执行此操作。另一种方法是增加另一个向后指向的继续。