0

私は非常に単純なセットアップを持っています - 多くの busStops モデルを表示する tableView (busStop には座標があります) と、セルをクリックすると、MapView 上の busStop の位置を示す新しい VC がプッシュされます (マップの中心がの位置に設定されます)。バス停座標)。

何らかの理由で、最初にセルを押すと、マップが中央に配置されません(「戻る」ボタンを押して再試行すると機能します)。

- (void)viewDidLoad
{
    [super viewDidLoad];

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

}

updateMapCenter メソッドを呼び出そうとすると、マップがまだロードされていないと思われます。これは本当でしょうか?私は何をすべきか?viewDidAppear から別の呼び出しを追加しようとすると、部分的に解決しましたが、これはやり過ぎのように感じます。何か案は?

4

1 に答える 1

0

iOS6がマップをロードするタイミングを変更したことがわかりました。以前はで中心座標を設定していましviewDidLoadたが、うまくいかないことがありました。に移動してviewWillAppear:、期待どおりに動作しました。viewWillAppear:再び呼び出されるように、マップビューに戻る(進むのではなく)ことを考える必要があるかもしれません。

より良い方法があるかもしれませんが(viewマップビューを呼び出す?)、私はそれをさらに調べていません。

于 2013-01-24T16:04:20.597 に答える