2010-05-29 4 views
0

Jusqu'à présent, mon programme peut afficher une base de données de vues d'annotations personnalisées. Finalement, je veux que mon programme puisse afficher des informations supplémentaires après avoir cliqué sur un bouton de la bulle d'annotation. Chaque élément de la base de données possède un numéro d'entrée unique. J'ai donc pensé que ce serait une bonne idée d'ajouter ce numéro d'entrée en tant que propriété de l'annotation personnalisée. Le problème que j'ai est qu'après avoir cliqué sur le bouton et le programme passe à une nouvelle vue, je suis incapable de récupérer le numéro d'entrée de l'annotation que j'ai sélectionné. Voici le code qui attribue la propriété du numéro d'entrée à l'annotation:Comment puis-je obtenir le programme pour savoir quelle annotation est sélectionnée et être en mesure d'accéder à ses propriétés?

for (id mine in mines) 
{ 
workingCoordinate.latitude = [[mine latitudeInitial] doubleValue]; 
workingCoordinate.longitude = [[mine longitudeInitial] doubleValue]; 
iProspectAnnotation *tempMine = [[iProspectAnnotation alloc] initWithCoordinate:workingCoordinate]; 
[tempMine setTitle:[mine mineName]]; 
[tempMine setAnnotationEntryNumber:[mine entryNumber]]; 
    } 
[mines dealloc]; 

Lorsque le bouton sur une annotation est sélectionnée, c'est le code qui initialise la nouvelle vue:

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control 
{ 
mineInformationController *controller = [[mineInformationController alloc] initWithNibName:@"mineInformationController" bundle:nil]; 

controller.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; 
[self presentModalViewController:controller animated:YES]; 
[controller release]; 
    } 

et enfin est ma tentative de récupérer la propriété entryNumber de la nouvelle vue afin que je puisse la comparer à la base de données mines et récupérer plus d'informations sur l'élément de tableau.

iProspectFresno_LiteAppDelegate *appDelegate = (iProspectFresno_LiteAppDelegate *)[[UIApplication sharedApplication] delegate]; 
NSMutableArray* mines = [[NSMutableArray alloc] initWithArray:(NSMutableArray *)appDelegate.mines]; 
for(id mine in mines) 
{ 
if ([[mine entryNumber] isEqualToNumber: /*the entry Number of the selected annotation*/]) 
     { 
     /* display the information in the mine object */ 
     } 
    } 

Comment puis-je accéder à cette propriété de numéro d'entrée dans ce nouveau contrôleur de vue?

Répondre

Questions connexes