当我调用setCoordinate时,MKMapView不会更新

时间:2011-06-04 00:34:10

标签: iphone objective-c mkmapview xib nib

这是我今天的第二个问题,第一个是一个令人难以置信的愚蠢问题,所以我完全期待这个问题也是如此。

我有一个嵌入式MKMapView的视图。

我想知道如何能够获得这个MKMapView?我可以在xib文件中以某种方式连接它吗?或者失败......我可以直接从父视图控制器中提取它吗?

我想做的事情就像使用setCoordinates但我无法弄清楚如何在MKMapView实例上调用该函数。

我如何获得MKMapView对象。

3 个答案:

答案 0 :(得分:2)

在您想要的地方,设置一个插座。在.h文件中,声明mapview属性

MKMapView *mapView;

然后使用IBOutlet

声明其属性

@property (nonatomic, retain) IBOutlet MKMapView *mapView;

您应该能够控制 - 从IB文件中的文件所有者拖动到视图中的mapview以建立连接。在出现的弹出窗口中选择“mapView”,您的文件将连接到mapview对象。然后,您可以使用.m文件中的属性mapView在mapview上设置内容。

[self.mapView setCoordinates:myCoordinates];

确保您也正确导入框架。

答案 1 :(得分:2)

听起来您正在使用Interface Builder来显示此MKMapView。为了能够获取屏幕上的MKMapView实例,请按照以下步骤操作。

1)打开包含MKMapView的视图的视图控制器的.h文件。

2)在实例变量部分中,添加行

IBOutlet MKMapView *mapView;

3)返回界面构建器,然后单击添加到XIB的地图视图

4)按Control,在按住它的同时单击并拖动地图视图。这应该在地图视图上的地点跟随鼠标生成蓝线。

5)将蓝线拖到XIB中的对象列表中。对于普通的视图控制器xib,此列表应该类似于File的Owner。第一响应者和视图。取消选中“文件所有者”对象。

6)这应该会显示一个连接列表。点击“mapView”

7)利润!现在,在视图控制器内部,您可以使用mapView实例变量访问地图视图的实例。

答案 2 :(得分:0)

确保为MKMapView设置委托方法,并且方法应该在您的委托类上触发。