0

マップにピンをドロップしようとしていますが、デリゲート メソッドを呼び出していません

  • (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id )annotation{

私のアプリはユニバーサルなので、iPhone を使用している場合は適切にデリゲート メソッドを呼び出しますが、iPad を使用している場合はデリゲート メソッドが呼び出されません。コードを以下に示します。

  • (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id )annotation{

    static NSString *identifier = @"MachineLocation";
    if ([注釈 isKindOfClass:[MachineLocation クラス]]) {

    MKPinAnnotationView *annotationView = (MKPinAnnotationView *) [self.mapView dequeueReusableAnnotationViewWithIdentifier:identifier];
    if (annotationView == nil) {
        annotationView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:identifier];
    } else {
        annotationView.annotation = annotation;
    }
    
    annotationView.enabled = YES;
    annotationView.canShowCallout = YES; //        
    if (isWeatherOn) {
        if (imageFlag == 0) {
            annotationView.image=[UIImage imageNamed:@"Clouds.png"];
        }
        if (imageFlag == 1) {
            annotationView.image=[UIImage imageNamed:@"Sun + Clouds.png"];
        }
        if (imageFlag == 2) {
            annotationView.image=[UIImage imageNamed:@"Sun.png"];
        }
        imageFlag++;
    }
    else
    {
        annotationView.image=[UIImage imageNamed:@"arrest.png"];
        NSLog(@"annotation");
    }
    
    annotationView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
    
    return annotationView;
    

    }

    ゼロを返します。}

viewWillApearコードの下はこれです

NSString *tempString;
            for(NSMutableArray *array in appDelegate.globalVehicleInfoArray) { 
                for (VehicleInfo *vehicleInfo in array) {
                    for (WeatherCondition *weather in appDelegate.globalWeatherConditionArray) {
                        if ([weather.weatherID isEqualToString:[vehicleInfo vehicleID]]) {
                            tempString = [weather weatherTempC];
                            //                            NSLog(@"weather id matched");
                        }
                    }
                    NSString *name = [vehicleInfo vehicleName];
                    NSString *machineDescription = [NSString stringWithFormat:@"%@     %@ C", [vehicleInfo vehicleLastUpdate], tempString];
                    MKPointAnnotation *annotation = [[MKPointAnnotation alloc] init];
                    CLLocationCoordinate2D coordinate;
                    coordinate.latitude = [[vehicleInfo vehicleLastPositionY] doubleValue]; 
                    coordinate.longitude = [[vehicleInfo vehicleLastPositionX] doubleValue];
                    NSLog(@"%f , %f", coordinate.latitude, coordinate.longitude);
                    MachineLocation *location = [[MachineLocation alloc] initWithId:[vehicleInfo vehicleID] :name description:machineDescription coordinate:coordinate];
//                    annotation.coordinate = coordinate;
                    [self.mapView addAnnotation:location];
                }


            }
4

0 に答える 0