Как добавить ModelView Controller на Pin Annotation для отображения подробного пользовательского интерфейса - PullRequest
0 голосов
/ 17 октября 2011

Я хочу добавить подробный вид с двумя кнопками и тремя метками для информации, коснувшись булавки для аннотации.Есть ли учебник или пример кода ссылки для этого.У меня есть поиск, но получить только подзаголовок canShowCallout, который старые способы.

Отредактировано: - Я проанализировал URL, после чего при условии успеха я поставил этот код для добавления аннотации.Что я должен сделать изменения в представлении MKAnnotation также скажите мне .....

   for (int i = 0; i < [appDelegate.markers count]; i++)
{
    marker *aMarker = [appDelegate.markers objectAtIndex:i];
    location.latitude = [aMarker.lat floatValue];
    location.longitude =[aMarker.lng floatValue];
    AddressAnnotation *annobj = [[AddressAnnotation alloc]   initWithCoordinate:location];
    //[annobj setAnnotationType:AddressAnnotationTypeHettich];
    //annobj.title = aMarker.name;
    //annobj.subTitle = aMarker.address;
    [mapView addAnnotation:annobj];
    [annobj release];

            CLLocationCoordinate2D ausLoc = {location.latitude,location.longitude};                            
            //for zoom in the showroom results region
    MKCoordinateSpan ausSpan = MKCoordinateSpanMake(0.108889, 0.169922);
    MKCoordinateRegion ausRegion = MKCoordinateRegionMake(ausLoc, ausSpan);
    NSLog(@"No Errors");
    mapView.region = ausRegion;



}

1 Ответ

0 голосов
/ 18 октября 2011
        indexRow = 0;
        mapAnnonations = [[[NSMutableArray alloc] init] retain];
        for (int i = indexRow; i<[lat ,longi count]; i++)
        {
            region.center.latitude = [[lat objectAtIndex:indexRow] floatValue];
            region.center.longitude = [[longi objectAtIndex:indexRow] floatValue];
            region.span.longitudeDelta = 0.04f;
            region.span.latitudeDelta = 0.04f;

            [mymapView setRegion:region animated:YES];

            coordinate.latitude = [[lat objectAtIndex:indexRow] floatValue];
            coordinate.longitude = [[longi objectAtIndex:indexRow]floatValue];

            NSLog(@"Latitude & Longitude:---->%f,%f",coordinate.latitude,coordinate.longitude);

            mapAnnotation = [[AllMapAnnotation alloc] initWithCoordinate:coordinate]; 
            NSString *title = [[[resData valueForKey:@"name"] mutableCopy] objectAtIndex:indexRow];
            NSString *titleStr = [title stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
            NSLog(@"Pin Title:--->%@",titleStr);
            [mapAnnotation setTitle:titleStr];

            //[mapAnnotation setSubtitle:[NSString stringWithFormat:@"Ph: %@",pantries.phone]];
            mapAnnotation.coordinate = region.center; 
            [mapAnnonations insertObject:mapAnnotation atIndex:indexRow];
            [mymapView addAnnotations:mapAnnonations];
            //[mymapView addAnnotation:mapAnnotation];
            indexRow+= 1;
        }


-(MKAnnotationView *)mapView:(MKMapView *)mV viewForAnnotation:(id <MKAnnotation>)annotation 
{
    MKPinAnnotationView *pinView = nil; 
    if(annotation!= mymapView.userLocation) 
    {
        static NSString *defaultPinID = @"pantryIdentifier";
        pinView = (MKPinAnnotationView *)[mymapView dequeueReusableAnnotationViewWithIdentifier:defaultPinID];
        if ( pinView == nil ) pinView = [[[MKPinAnnotationView alloc]
                                          initWithAnnotation:annotation reuseIdentifier:defaultPinID] autorelease];

        pinView.pinColor = MKPinAnnotationColorGreen; 
        pinView.canShowCallout = YES;
        pinView.animatesDrop = YES;


        NSInteger annotationValue = [mapAnnonations indexOfObject:annotation];
        NSLog(@"Annotation Value:--->%d",annotationValue);

        rightButton = [UIButton buttonWithType:UIButtonTypeCustom];
        rightButton.frame = CGRectMake(40, 5, 20, 22);

        [rightButton setBackgroundImage:[UIImage imageNamed:@"listtab_arrow.png"] forState:UIControlStateNormal];

        rightButton.tag = annotationValue;      
        [rightButton addTarget:self action:@selector(showDetails:)
                  forControlEvents:UIControlEventTouchUpInside];
        pinView.rightCalloutAccessoryView = rightButton;


    } 
    else 
    {
        [mymapView.userLocation setTitle:@"I am here"];
    }


    return pinView;

}

- (IBAction)showDetails:(UIView *)sender
{
    NSInteger selectedIndex = sender.tag;

    list = [[ListView alloc] initWithNibName:@"ListView" bundle:nil];
    details = [[resData valueForKey:@"reference"] mutableCopy];
    NSLog(@"Reference:--->%@",details);
        list.refernceIndex =  [NSString stringWithFormat:@"%@",[details objectAtIndex:selectedIndex]];

        [appDelegate.navigationController pushViewController:list animated:YES];

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...