マップにピンをドロップしようとしていますが、デリゲート メソッドを呼び出していません
- (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];
}
}