更改UIMapView中心位置仅适用于第二次

时间:2013-01-23 18:54:18

标签: objective-c mapkit

我有一个非常简单的设置 - 一个显示我的许多busStops模型的tableView(busStop有一个坐标)当我点击一个单元格时,它会推送一个新的VC,它在MapView上显示busStop的位置(它将地图的中心设置为BusStop坐标的位置。)

出于某种原因 - 我第一次按任何单元格时地图不居中(当我按下“后退”按钮并再次尝试时它会起作用。)

- (void)viewDidLoad
{
    [super viewDidLoad];

    [mainMapView addAnnotation:selectedBusStop];
    [self updateMapCenter:selectedBusStop.coordinate];

}

我怀疑当我尝试调用updateMapCenter方法时,地图尚未加载。这可能是真的吗?我该怎么办? 我尝试从viewDidAppear添加另一个调用,它部分解决了 - 但这感觉就像一个矫枉过正。任何想法?

1 个答案:

答案 0 :(得分:0)

我发现iOS 6改变了加载地图的时间。我曾经在viewDidLoad中设置中心坐标,但有时不起作用。我把它移到viewWillAppear:,它按预期工作。您可能不得不考虑向后移动(而不是向前)到地图视图,因为viewWillAppear:会再次被调用。

可能有更好的方法(在地图视图上调用view?)但我还没有进一步研究过。