2009-08-05 14 views
3

Ich schreibe eine App für iPhone iOS 3.0, wo ich Map Kit und Adressbuch zusammen verwenden möchte. Ich habe eine Datenbank von Orten (Restaurants, zum Beispiel) mit Namen, Ort, Telefon, Adresse und einigen anderen Daten. Ich listet sie in einer Tabellenansicht auf und wenn ich einen Ort auswähle, möchte ich den Adressbuchkontakt anzeigen (mit Hilfe von ABUnknownPersonViewController), der alle Informationen enthält, so dass es für den Benutzer einfach ist, diesen Kontakt dem Adressbuch hinzuzufügen.Adressbuch und Map Kit

Jetzt, als ich auf die Adresse klicke, schaltet mich die App zur Google Maps App. Wie kann ich dieses Ereignis abfangen, um es in meiner MKMapView (in meiner App intern) zu zeigen?

Eine weitere verwandte Frage. Gibt es eine Möglichkeit, die Schaltflächen "Richtung von hier", "Richtung nach hier" im Standard-Adressbuch-Controller wie in der Maps-App zu implementieren?

+0

Haben Sie eine Antwort auf Ihre Frage? Ich habe das gleiche Design-Bedürfnis. – amok

Antwort

0

Für die verwandte Frage, Richtung von hier und hier, können Sie die URL http://maps.google.com/maps?saddr=%f,%f&daddr=%f,%f verwenden, wo Sie die% fs mit Längen- und Breitengrad der Startadresse (saddr) und Zieladresse (daddr) Ihrer Wünsche ersetzen. Sie können das 'hier' vom Breiten- und Längengrad des Benutzerstandorts abrufen. Dieser Link wird in der Standardanwendung von Google Maps geöffnet, zeigt jedoch Wegbeschreibungen an.

HTH
+0

Vielen Dank für Ihre Antwort, aber ich frage nach Schaltflächen (Zeilen) in Standard-Adressbuch-Controller (ABUnknownPersonViewController, zum Beispiel). Wie in der Google Maps App (die Art, wie eine Adresse angezeigt wird, nachdem auf die Zubehöransicht geklickt wurde). – azia

0

Intercept die Standardaktion in ABUnknownPersonViewController ‚s Delegatmethode auf die Maps App zu verhindern vermittlungs

// ABUnknownPersonViewControllerDelegate protocol conformance 
- (BOOL)unknownPersonViewController:(ABUnknownPersonViewController *)personViewController shouldPerformDefaultActionForPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier 
{ 
    // Allow the default action to occur. 
    BOOL shouldPerformDefaultAction = YES; 

    // If address property was selected, do not switch to the Maps.app. 
    if (property == kABPersonAddressProperty) 
    { 
     [self.navigationController popViewControllerAnimated:YES]; 

     // Do not perform the default action  
     shouldPerformDefaultAction = NO; 

     // Show your MKMapView here 
     // .... 
    } 

    return shouldPerformDefaultAction; 
}