У меня есть контроллер mapview, который показывает контакты из массива бизнес-объектов, которые я создал (в каждом бизнесе есть способ получить заголовок и субтитры вывода).добавить id в pin аннотацию в объекте c для загрузки detailview
Я добавил кнопку раскрытия для каждой условной аннотации, которая работает правильно, но я не уверен, как передать переменную в подробный вид, который должен быть загружен из кнопки раскрытия, и показать все детали для этого конкретного бизнес.
добавить свои предприятия к массиву, как это (в viewWillAppear) ...
// fetch model data for table view
SGTGAppDelegate *appDelegate = (SGTGAppDelegate *)[[UIApplication sharedApplication] delegate];
self.businesses = appDelegate.vaBusinesses;
// Add the business to the map
[self.mapView addAnnotations:self.businesses];
Я отформатируйте аннотации, как это ...
-(MKAnnotationView *)mapView:(MKMapView *)amapView viewForAnnotation:(id<MKAnnotation>)annotation{
static NSString *PinIdentifier = @"PinIdentifier";
//Use default style for user location
if([annotation isKindOfClass:[MKUserLocation class]])
return nil;
//Obtain a pin
MKPinAnnotationView *pin = (MKPinAnnotationView *) [amapView dequeueReusableAnnotationViewWithIdentifier:PinIdentifier];
if (pin == nil){
pin = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:PinIdentifier] autorelease];
}
UIButton * detailView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
// Configue the pin
pin.annotation = annotation;
pin.animatesDrop = NO;
pin.pinColor = MKPinAnnotationColorRed;
pin.rightCalloutAccessoryView = detailView;
pin.canShowCallout = YES;
return pin;
}
Я тогда этот метод обрабатывать кнопку раскрытия, но не уверены, что делать, чтобы получить идентификатор бизнеса, чтобы перейти на подробный вид ...
-(void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
{
NSLog(@"annotation %@", view.annotation[0]);
// Fetch the businesses for this row
// not sure what to do here
//SGTGVABusiness *business = [self.businesses objectAtIndex:[view.annotation]];
// Show the detail view by pushing it onto the navigation stack
SGTGVADetailViewController *dvc = [[SGTGVADetailViewController alloc] initWithStyle:UITableViewStyleGrouped];
//dvc.business = business;
[self.navigationController pushViewController:dvc animated:YES];
[dvc release];
}