单击时,我的地图标注不显示图像

时间:2012-03-30 17:19:15

标签: iphone uiviewcontroller mapkit uistoryboard

我正在为大学项目开发​​一个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];
}

1 个答案:

答案 0 :(得分:0)

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

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

  1. 将视图控制器拖到故事板中
  2. 将UIImageView拖入视图控制器
  3. 在UIImageview的属性编辑器中选择要显示的图像
  4. 控制 - 从主视图控制器中的按钮拖动到包含图像的视图控制器
  5. 这应该创造了一个segue。选择segue并从样式菜单中选择“模态”
  6. 您可以为所需的每张图片执行此操作,但这很麻烦。还要考虑对图像控制器进行子类化,并以编程方式定义要显示的图像。如果要使用关闭模态视图控制器方法关闭图像,则无论如何都可能需要执行此操作。替代方案是添加另一个指向后方的segue。