0

コンテキスト: 私は、多くの異なるセルを含む TableView で作業しています:それらの 1 つには、複数の注釈を含む MapView が含まれている必要があります。

私がこれまでに得たもの:

//address comes in this format: NSString = @"myStreet myNumber, myZIP myCity, Germany";

- (void) mapPinForAddress: (NSString *)address {

    CLGeocoder *geoCoder = [[CLGeocoder alloc] init];

    [geoCoder geocodeAddressString:adresse completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error) {
            if (placemarks && placemarks.count > 0) {

                CLPlacemark *topResult = [placemarks objectAtIndex:0];

                MKPlacemark *placeMark = [[MKPlacemark alloc] initWithPlacemark:topResult];

                MKPointAnnotation *adressPoint = [[MKPointAnnotation alloc] init];
                adressPoint.coordinate = placeMark.coordinate;
                adressPoint.title =@"Title";
                adressPoint.subtitle = address;

                [mapPins addObject:adressPoint];
            }
}];

との内部cellForRowAtIndexPath

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.section == mapViewSection) {
    myMapCell *cell = [tableView dequeue...];        

    [cell.mapView addAnnotations:mapPins];
    [cell.mapView showAnnotations:mapPins animated:YES];

    return cell;

}

そして、ここに私の問題があります:

初めてロードするTableViewControllerとき...それは魅力のように機能します...しかし、前のビューに戻って再びセグエに移動すると、TableViewController機能しません。すべてを NSLog しようとしましたが、出力は同じであるため、mapPinForAddress毎回呼び出されます。

ヒントやコードはありますか?

4

1 に答える 1

1

本当に必要でない限り、マップビューを uitableviewcell に配置するのは悪い習慣です。最善の方法は、場所の静止画像を作成し、mapview の代わりに uiimageview を使用して使用することです。マップから静止画像を作成する API は次のとおりです ->ここをクリック

于 2016-08-14T08:06:37.747 に答える