Libreta de direcciones y kit de maps

Estoy escribiendo una aplicación para iPhone iOS 3.0, donde quiero usar Map Kit y Address Book juntos. Tengo una database de lugares (restaurantes, por ejemplo) con nombre, location, teléfono, dirección y algunos otros datos. Los enumero en una vista de tabla y cuando elijo un lugar quiero mostrar el contacto de la Libreta de direcciones (con la ayuda de ABUnknownPersonViewController ), que contiene toda la información, por lo que es fácil que el usuario agregue este contacto a la Libreta de direcciones.

Ahora cuando hago clic en la dirección, la aplicación me cambia a la aplicación Maps. ¿Cómo puedo atrapar este evento para mostrarlo en mi MKMapView (en mi aplicación internamente)?

Una pregunta más relacionada. ¿Hay alguna forma de implementar los botones "Direction from here", "Direction to here" en el controller de libreta de direcciones estándar como en la aplicación Maps?

Para la pregunta relacionada, dirección aquí y aquí, puede usar la URL http://maps.google.com/maps?saddr=%f,%f&daddr=%f,%f donde reemplaza el% f con latitud y la longitud de la dirección de inicio (saddr) y la dirección de destino (daddr) de sus preferences. Puede get el "aquí" de la latitud y longitud de la location del usuario. Este enlace se abrirá en la aplicación pnetworkingeterminada de Maps, pero mostrará indicaciones. HTH

Interceptar la acción pnetworkingeterminada en el método delegado de ABUnknownPersonViewController para evitar el cambio a la aplicación Maps:

 // 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; }